diff options
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory')
84 files changed, 3801 insertions, 3562 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AbstractMemoryViewPane.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AbstractMemoryViewPane.java index ab2747bb7..09164c325 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AbstractMemoryViewPane.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AbstractMemoryViewPane.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2011 IBM Corporation and others. + * Copyright (c) 2004, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -11,7 +11,6 @@ *******************************************************************************/ package org.eclipse.debug.internal.ui.views.memory; - import java.util.Enumeration; import java.util.Hashtable; @@ -44,43 +43,43 @@ import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPart; -public abstract class AbstractMemoryViewPane implements IMemoryBlockListener, ISelectionListener, SelectionListener, IMemoryView, ISelectionChangedListener, IMemoryViewPane, IDebugContextListener, IDebugEventSetListener{ - +public abstract class AbstractMemoryViewPane implements IMemoryBlockListener, ISelectionListener, SelectionListener, IMemoryView, ISelectionChangedListener, IMemoryViewPane, IDebugContextListener, IDebugEventSetListener { + public static final String BEGINNING_POPUP = "popUpBegin"; //$NON-NLS-1$ protected static final StructuredSelection EMPTY = new StructuredSelection(); - + protected Composite fViewPaneCanvas; protected StackLayout fStackLayout; protected ViewTabEnablementManager fViewTabEnablementManager; protected CTabFolder fEmptyTabFolder; - protected Hashtable fTabFolderForDebugView = new Hashtable(); + protected Hashtable<Integer, CTabFolder> fTabFolderForDebugView = new Hashtable<Integer, CTabFolder>(); protected boolean fVisible; - protected Hashtable fRenderingInfoTable; - protected IMemoryBlockRetrieval fKey; // store the key for current tab folder + protected IMemoryBlockRetrieval fKey; // store the key for current tab + // folder protected ViewPaneSelectionProvider fSelectionProvider; protected IViewPart fParent; protected String fPaneId; private Composite fCanvas; protected String fLabel; - + private volatile boolean fIsDisposed = false; - public AbstractMemoryViewPane(IViewPart parent) - { + public AbstractMemoryViewPane(IViewPart parent) { super(); fParent = parent; fSelectionProvider = new ViewPaneSelectionProvider(); } - + /** * Create the content of the view pane + * * @param parent the parent composite * @param paneId the id of the pane to create * @param label the label for the new pane * @return the control of the view pane */ - public Control createViewPane(Composite parent, String paneId, String label) - { + @Override + public Control createViewPane(Composite parent, String paneId, String label) { fPaneId = paneId; fLabel = label; fCanvas = new Composite(parent, SWT.NONE); @@ -99,7 +98,7 @@ public abstract class AbstractMemoryViewPane implements IMemoryBlockListener, IS // memory view area Composite memoryViewAreaParent = fCanvas; - Composite subCanvas = new Composite(memoryViewAreaParent, SWT.NONE); + Composite subCanvas = new Composite(memoryViewAreaParent, SWT.NONE); fViewPaneCanvas = subCanvas; fStackLayout = new StackLayout(); GridData memoryAreaData = new GridData(); @@ -109,196 +108,180 @@ public abstract class AbstractMemoryViewPane implements IMemoryBlockListener, IS memoryAreaData.horizontalAlignment = SWT.FILL; fViewPaneCanvas.setLayout(fStackLayout); fViewPaneCanvas.setLayoutData(memoryAreaData); - + fViewTabEnablementManager = new ViewTabEnablementManager(); - + fEmptyTabFolder = new CTabFolder(fViewPaneCanvas, SWT.NULL); setTabFolder(fEmptyTabFolder); - + addListeners(); - + Object context = DebugUITools.getPartDebugContext(fParent.getSite()); - if (context != null) - { + if (context != null) { IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); - if (retrieval != null) + if (retrieval != null) { createFolder(retrieval); + } } - + fVisible = true; - + return fCanvas; } - - protected void addListeners() - { + + protected void addListeners() { MemoryViewUtil.getMemoryBlockManager().addListener(this); fParent.getViewSite().getPage().addSelectionListener(this); DebugUITools.addPartDebugContextListener(fParent.getSite(), this); DebugPlugin.getDefault().addDebugEventListener(this); } - - protected void removeListeners() - { + + protected void removeListeners() { MemoryViewUtil.getMemoryBlockManager().removeListener(this); fParent.getViewSite().getPage().removeSelectionListener(this); - DebugUITools.removePartDebugContextListener(fParent.getSite(), this); - if (fStackLayout.topControl != null) - { - CTabFolder old = (CTabFolder)fStackLayout.topControl; - - if (!old.isDisposed()) - { + DebugUITools.removePartDebugContextListener(fParent.getSite(), this); + if (fStackLayout.topControl != null) { + CTabFolder old = (CTabFolder) fStackLayout.topControl; + + if (!old.isDisposed()) { old.removeSelectionListener(this); old.removeSelectionListener(fViewTabEnablementManager); } } DebugPlugin.getDefault().removeDebugEventListener(this); } - - protected void setTabFolder(CTabFolder folder) - { - if (fStackLayout.topControl != null) - { - CTabFolder old = (CTabFolder)fStackLayout.topControl; - - if (!old.isDisposed()) - { + + protected void setTabFolder(CTabFolder folder) { + if (fStackLayout.topControl != null) { + CTabFolder old = (CTabFolder) fStackLayout.topControl; + + if (!old.isDisposed()) { old.removeSelectionListener(this); old.removeSelectionListener(fViewTabEnablementManager); } } - + fStackLayout.topControl = folder; - - if (folder.getItemCount() > 0) - { + + if (folder.getItemCount() > 0) { CTabItem selectedItem = folder.getSelection(); - - if (selectedItem != null) - { + + if (selectedItem != null) { Object selected = getCurrentSelection(); - if (selected != null) - { + if (selected != null) { fSelectionProvider.setSelection(new StructuredSelection(selected)); - } - else - { + } else { fSelectionProvider.setSelection(AbstractMemoryViewPane.EMPTY); } } - } - else - { + } else { fSelectionProvider.setSelection(AbstractMemoryViewPane.EMPTY); } - + folder.addSelectionListener(this); folder.addSelectionListener(fViewTabEnablementManager); - } - - - private void createFolder(IMemoryBlockRetrieval memRetrieval) - { - //if we've got a tabfolder to go with the IMemoryBlockRetrieval, display it + } + + private void createFolder(IMemoryBlockRetrieval memRetrieval) { + // if we've got a tabfolder to go with the IMemoryBlockRetrieval, + // display it Integer key = MemoryViewUtil.getHashCode(memRetrieval); if (fTabFolderForDebugView.containsKey(key)) { - if (fStackLayout.topControl != (CTabFolder)fTabFolderForDebugView.get(key)) { - setTabFolder((CTabFolder)fTabFolderForDebugView.get(key)); + if (fStackLayout.topControl != fTabFolderForDebugView.get(key)) { + setTabFolder(fTabFolderForDebugView.get(key)); fViewPaneCanvas.layout(); } - } else { //otherwise, add a new one + } else { // otherwise, add a new one fTabFolderForDebugView.put(key, new CTabFolder(fViewPaneCanvas, SWT.NULL)); - setTabFolder((CTabFolder)fTabFolderForDebugView.get(key)); + setTabFolder(fTabFolderForDebugView.get(key)); fViewPaneCanvas.layout(); } } + @Override public IMemoryViewTab getTopMemoryTab() { - - if (fStackLayout.topControl instanceof CTabFolder) - { - CTabFolder folder = (CTabFolder)fStackLayout.topControl; - if (!folder.isDisposed()) - { + + if (fStackLayout.topControl instanceof CTabFolder) { + CTabFolder folder = (CTabFolder) fStackLayout.topControl; + if (!folder.isDisposed()) { int index = folder.getSelectionIndex(); if (index >= 0) { CTabItem tab = folder.getItem(index); - return (IMemoryViewTab)tab.getData(); + return (IMemoryViewTab) tab.getData(); } } } return null; } - - protected void disposeTab(CTabItem tabItem) - { - if (tabItem == null) + + protected void disposeTab(CTabItem tabItem) { + if (tabItem == null) { return; - - // dispose the tab item in case the view tab has not + } + + // dispose the tab item in case the view tab has not // cleaned up the tab item - if (!tabItem.isDisposed()) - { + if (!tabItem.isDisposed()) { tabItem.dispose(); - } + } } - protected void emptyFolder() - { + protected void emptyFolder() { setTabFolder(fEmptyTabFolder); if (!fViewPaneCanvas.isDisposed()) { fViewPaneCanvas.layout(); } } - - public void addSelectionListener(ISelectionChangedListener listener) - { - if (fSelectionProvider == null) + + @Override + public void addSelectionListener(ISelectionChangedListener listener) { + if (fSelectionProvider == null) { fSelectionProvider = new ViewPaneSelectionProvider(); - + } + fSelectionProvider.addSelectionChangedListener(listener); } - - public void removeSelctionListener(ISelectionChangedListener listener) - { - if (fSelectionProvider == null) + + @Override + public void removeSelctionListener(ISelectionChangedListener listener) { + if (fSelectionProvider == null) { return; - + } + fSelectionProvider.removeSelectionChangedListener(listener); } - - public ISelectionProvider getSelectionProvider() - { + + @Override + public ISelectionProvider getSelectionProvider() { return fSelectionProvider; } - public void handleDebugEvents(DebugEvent[] events) - { - for (int i = 0; i < events.length; i++) - { + @Override + public void handleDebugEvents(DebugEvent[] events) { + for (int i = 0; i < events.length; i++) { Object source = events[i].getSource(); - if (events[i].getKind() == DebugEvent.TERMINATE && source instanceof IMemoryBlockRetrieval) - { - if (isDisposed()) + if (events[i].getKind() == DebugEvent.TERMINATE && source instanceof IMemoryBlockRetrieval) { + if (isDisposed()) { return; + } - //When a memory block retrieval terminates, it and its - //tab folders should be removed from our map. - final IMemoryBlockRetrieval ret = (IMemoryBlockRetrieval)source; - if (ret != null) - { + // When a memory block retrieval terminates, it and its + // tab folders should be removed from our map. + final IMemoryBlockRetrieval ret = (IMemoryBlockRetrieval) source; + if (ret != null) { Display.getDefault().asyncExec(new Runnable() { + @Override public void run() { - if (isDisposed()) + if (isDisposed()) { return; + } Integer key = MemoryViewUtil.getHashCode(ret); Object folder = fTabFolderForDebugView.get(key); - if (folder != null && folder != fEmptyTabFolder) - { - //remove the tab folder , and all contained tab items + if (folder != null && folder != fEmptyTabFolder) { + // remove the tab folder , and all contained tab + // items disposeOfFolder((CTabFolder) folder); fTabFolderForDebugView.remove(key); } @@ -309,53 +292,48 @@ public abstract class AbstractMemoryViewPane implements IMemoryBlockListener, IS } } - - - public void dispose() - { - if (isDisposed()) + @Override + public void dispose() { + if (isDisposed()) { return; + } fIsDisposed = true; removeListeners(); - + // dispose empty folders fEmptyTabFolder.dispose(); - + // dispose all other folders try { - Enumeration enumeration = fTabFolderForDebugView.elements(); + Enumeration<CTabFolder> enumeration = fTabFolderForDebugView.elements(); - while (enumeration.hasMoreElements()) - { - CTabFolder tabFolder = (CTabFolder)enumeration.nextElement(); + while (enumeration.hasMoreElements()) { + CTabFolder tabFolder = enumeration.nextElement(); disposeOfFolder(tabFolder); } // Clear the table as all CTabFolder's have been dipose()d fTabFolderForDebugView.clear(); - } catch (Exception e) { - + } catch (Exception e) { + DebugUIPlugin.logErrorMessage("Exception occurred when the Memory View is disposed."); //$NON-NLS-1$ - } + } } /** - * Helper method to dispose of a tab folder, - * and of any tab items it contains. - * Must be called from the UI thread. + * Helper method to dispose of a tab folder, and of any tab items it + * contains. Must be called from the UI thread. + * * @param tabFolder the {@link CTabFolder} to dispose * */ - private void disposeOfFolder(CTabFolder tabFolder) - { - if (!tabFolder.isDisposed()) - { + private void disposeOfFolder(CTabFolder tabFolder) { + if (!tabFolder.isDisposed()) { // if tab folder is not empty, dipose view tabs CTabItem[] tabs = tabFolder.getItems(); - for (int i=0; i<tabs.length; i++) - { + for (int i = 0; i < tabs.length; i++) { disposeTab(tabs[i]); } @@ -363,82 +341,95 @@ public abstract class AbstractMemoryViewPane implements IMemoryBlockListener, IS } } - public void setVisible(boolean visible) - { + @Override + public void setVisible(boolean visible) { fVisible = visible; - + IMemoryViewTab currentTab = getTopMemoryTab(); - if (currentTab != null) + if (currentTab != null) { currentTab.setEnabled(visible); + } } + @Override public void selectionChanged(SelectionChangedEvent event) { ISelection selection = event.getSelection(); - selectionChanged(fParent,selection); - + selectionChanged(fParent, selection); + fSelectionProvider.setSelection(selection); } - + /** * @return the unique identifier of the view pane */ - public String getPaneId() - { + public String getPaneId() { return fPaneId; } - - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#getControl() + + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#getControl() */ + @Override public Control getControl() { return fCanvas; } - - public boolean isVisible() - { + + @Override + public boolean isVisible() { return fVisible; } - - public String getLabel() - { + + public String getLabel() { return fLabel; } - - protected boolean isDisposed() - { + + protected boolean isDisposed() { return fIsDisposed; } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockAdded(org.eclipse.debug.core.model.IMemoryBlock) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockAdded + * (org.eclipse.debug.core.model.IMemoryBlock) */ - abstract public void memoryBlocksAdded(IMemoryBlock[] memoryBlocks); - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockRemoved(org.eclipse.debug.core.model.IMemoryBlock) + @Override + abstract public void memoryBlocksAdded(IMemoryBlock[] memoryBlocks); + + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener# + * MemoryBlockRemoved(org.eclipse.debug.core.model.IMemoryBlock) */ + @Override abstract public void memoryBlocksRemoved(final IMemoryBlock[] memoryBlocks); - /* (non-Javadoc) - * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui. + * IWorkbenchPart, org.eclipse.jface.viewers.ISelection) */ + @Override abstract public void selectionChanged(IWorkbenchPart part, ISelection selection); - + /** * @return current selection from the view pane */ abstract public Object getCurrentSelection(); - + /** - * retore the view pane based on current selection from the debug view - * and the memory blocks and renderings currently exist + * retore the view pane based on current selection from the debug view and + * the memory blocks and renderings currently exist */ + @Override abstract public void restoreViewPane(); - + /** * @return actions to be contributed to the view pane's toolbar */ + @Override abstract public IAction[] getActions(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryBlockAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryBlockAction.java index 08dc02bd7..8d1ecc175 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryBlockAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryBlockAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2012 IBM Corporation and others. + * Copyright (c) 2004, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -50,35 +50,32 @@ import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; - /** * Action for adding memory block. * * @since 3.0 */ -public class AddMemoryBlockAction extends Action implements IDebugContextListener, IDebugEventSetListener{ - +public class AddMemoryBlockAction extends Action implements IDebugContextListener, IDebugEventSetListener { + protected IAdaptable fCurrentContext = null; protected IMemoryBlock fLastMemoryBlock; private boolean fAddDefaultRenderings = true; protected IMemoryRenderingSite fSite; - - public AddMemoryBlockAction(IMemoryRenderingSite site) - { + + public AddMemoryBlockAction(IMemoryRenderingSite site) { initialize(site); } - + /** * @param site the site to add the action to - * @param addDefaultRenderings - specify if the action should add - * default renderings for the new memory block when it is run + * @param addDefaultRenderings - specify if the action should add default + * renderings for the new memory block when it is run */ - AddMemoryBlockAction(IMemoryRenderingSite site, boolean addDefaultRenderings) - { + AddMemoryBlockAction(IMemoryRenderingSite site, boolean addDefaultRenderings) { initialize(site); fAddDefaultRenderings = addDefaultRenderings; } - + /** * @param site the site to initialize */ @@ -87,13 +84,11 @@ public class AddMemoryBlockAction extends Action implements IDebugContextListene doInitialization(site); } - - public AddMemoryBlockAction(String text, int style, IMemoryRenderingSite site) - { + public AddMemoryBlockAction(String text, int style, IMemoryRenderingSite site) { super(text, style); - doInitialization(site); + doInitialization(site); } - + /** * @param site the site to initialize */ @@ -104,79 +99,78 @@ public class AddMemoryBlockAction extends Action implements IDebugContextListene setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IDebugUIConstants.IMG_LCL_ADD)); setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_MONITOR_EXPRESSION)); PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugUIConstants.PLUGIN_ID + ".addMemoryMonitorAction_context"); //$NON-NLS-1$ - - // listen for context changed - DebugUITools.addPartDebugContextListener(fSite.getSite(), this); - + + // listen for context changed + DebugUITools.addPartDebugContextListener(fSite.getSite(), this); + // get current context fCurrentContext = DebugUITools.getPartDebugContext(site.getSite()); - + // set up enablement based on current selection updateAction(fCurrentContext); - + DebugPlugin.getDefault().addDebugEventListener(this); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { boolean exit = false; String prefillExp = null; String prefillLength = null; - while (!exit) - { + while (!exit) { exit = true; - + Object elem = fCurrentContext; - + IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(elem); - - if (retrieval == null) + + if (retrieval == null) { return; - - Shell shell= DebugUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(); + } + + Shell shell = DebugUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(); // create dialog to ask for expression/address to block MonitorMemoryBlockDialog dialog = new MonitorMemoryBlockDialog(shell, retrieval, prefillExp, prefillLength); dialog.open(); int returnCode = dialog.getReturnCode(); - if (returnCode == Window.CANCEL) - { + if (returnCode == Window.CANCEL) { return; } // get expression entered in dialog String input = dialog.getExpression(); - + // remember expression and length prefillExp = input; prefillLength = dialog.getLength(); - - ArrayList expressions = new ArrayList(); - - if (input.length() == 0) - { + + ArrayList<String> expressions = new ArrayList<String>(); + + if (input.length() == 0) { expressions.add(IInternalDebugCoreConstants.EMPTY_STRING); - } - else - { + } else { StringTokenizer tokenizer = new StringTokenizer(input, ","); //$NON-NLS-1$ - while (tokenizer.hasMoreTokens()) - { + while (tokenizer.hasMoreTokens()) { expressions.add(tokenizer.nextToken()); } - } - final String[] expressionsArray = (String[])expressions.toArray(new String[expressions.size()]); + } + final String[] expressionsArray = expressions.toArray(new String[expressions.size()]); exit = true; - + final boolean finalExit = exit; final Object finalElement = elem; final IMemoryBlockRetrieval finalRetrieval = retrieval; final MonitorMemoryBlockDialog finalDialog = dialog; Job job = new Job("Add Memory Block") { //$NON-NLS-1$ + @Override protected IStatus run(IProgressMonitor monitor) { addMemoryBlocks(finalExit, finalElement, finalRetrieval, finalDialog, expressionsArray); return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } @@ -191,46 +185,41 @@ public class AddMemoryBlockAction extends Action implements IDebugContextListene * @return if we should exit */ private boolean addMemoryBlocks(boolean exit, Object elem, IMemoryBlockRetrieval standardMemRetrieval, MonitorMemoryBlockDialog dialog, final String[] expressionsArray) { - for (int i=0; i<expressionsArray.length; i++) - { + for (int i = 0; i < expressionsArray.length; i++) { String expression = expressionsArray[i].trim(); try { - if (standardMemRetrieval instanceof IMemoryBlockRetrievalExtension) - { - // if the debug session supports IMemoryBlockExtensionRetrieval - IMemoryBlockRetrievalExtension memRetrieval = (IMemoryBlockRetrievalExtension)standardMemRetrieval; - + if (standardMemRetrieval instanceof IMemoryBlockRetrievalExtension) { + // if the debug session supports + // IMemoryBlockExtensionRetrieval + IMemoryBlockRetrievalExtension memRetrieval = (IMemoryBlockRetrievalExtension) standardMemRetrieval; + // get extended memory block with the expression entered IMemoryBlockExtension memBlock = memRetrieval.getExtendedMemoryBlock(expression, elem); - + // add block to memory block manager - if (memBlock != null) - { + if (memBlock != null) { fLastMemoryBlock = memBlock; - - IMemoryBlock[] memArray = new IMemoryBlock[]{memBlock}; - + + IMemoryBlock[] memArray = new IMemoryBlock[] { memBlock }; + MemoryViewUtil.getMemoryBlockManager().addMemoryBlocks(memArray); - if (fAddDefaultRenderings) + if (fAddDefaultRenderings) { addDefaultRenderings(memBlock); - } - else - { + } + } else { // open error if it failed to retrieve a memory block MemoryViewUtil.openError(DebugUIMessages.AddMemoryBlockAction_title, DebugUIMessages.AddMemoryBlockAction_noMemoryBlock, null); exit = false; } - } - else - { - // if the debug session does not support IMemoryBlockExtensionRetrieval + } else { + // if the debug session does not support + // IMemoryBlockExtensionRetrieval expression = expression.toUpperCase(); String hexPrefix = "0X"; //$NON-NLS-1$ - if (expression.startsWith(hexPrefix)) - { + if (expression.startsWith(hexPrefix)) { expression = expression.substring(hexPrefix.length()); } - + // convert the expression to an address BigInteger address = new BigInteger(expression, 16); @@ -238,41 +227,37 @@ public class AddMemoryBlockAction extends Action implements IDebugContextListene // get the length of memory to block String strLength = dialog.getLength(); - + long length = Long.parseLong(strLength); - + // must monitor at least one line - if (length <= 0) - { + if (length <= 0) { String message = DebugUIMessages.AddMemoryBlockAction_failed + "\n" + DebugUIMessages.AddMemoryBlockAction_input_invalid; //$NON-NLS-1$ - MemoryViewUtil.openError(DebugUIMessages.AddMemoryBlockAction_title, message, null); + MemoryViewUtil.openError(DebugUIMessages.AddMemoryBlockAction_title, message, null); exit = false; continue; } - + // get standard memory block IMemoryBlock memBlock = standardMemRetrieval.getMemoryBlock(longAddress, length); - - // make sure the memory block returned is not an instance of IMemoryBlockExtension - if (memBlock instanceof IMemoryBlockExtension) - { - Status status = new Status(IStatus.WARNING, DebugUIPlugin.getUniqueIdentifier(), 0, - "IMemoryBlockRetrieval returns IMemoryBlockExtension. This may result in unexpected behavior.", null); //$NON-NLS-1$ + + // make sure the memory block returned is not an instance of + // IMemoryBlockExtension + if (memBlock instanceof IMemoryBlockExtension) { + Status status = new Status(IStatus.WARNING, DebugUIPlugin.getUniqueIdentifier(), 0, "IMemoryBlockRetrieval returns IMemoryBlockExtension. This may result in unexpected behavior.", null); //$NON-NLS-1$ DebugUIPlugin.log(status); } - - if (memBlock != null) - { + + if (memBlock != null) { // add memory block to memory block manager - fLastMemoryBlock = memBlock; - IMemoryBlock[] memArray = new IMemoryBlock[]{memBlock}; - + fLastMemoryBlock = memBlock; + IMemoryBlock[] memArray = new IMemoryBlock[] { memBlock }; + MemoryViewUtil.getMemoryBlockManager().addMemoryBlocks(memArray); - if (fAddDefaultRenderings) + if (fAddDefaultRenderings) { addDefaultRenderings(memBlock); - } - else - { + } + } else { // otherwise open up an error doalog MemoryViewUtil.openError(DebugUIMessages.AddMemoryBlockAction_title, DebugUIMessages.AddMemoryBlockAction_noMemoryBlock, null); exit = false; @@ -281,107 +266,102 @@ public class AddMemoryBlockAction extends Action implements IDebugContextListene } catch (DebugException e1) { MemoryViewUtil.openError(DebugUIMessages.AddMemoryBlockAction_title, DebugUIMessages.AddMemoryBlockAction_failed, e1); exit = false; - } - catch(NumberFormatException e2) - { + } catch (NumberFormatException e2) { String message = DebugUIMessages.AddMemoryBlockAction_failed + "\n" + DebugUIMessages.AddMemoryBlockAction_input_invalid; //$NON-NLS-1$ - MemoryViewUtil.openError(DebugUIMessages.AddMemoryBlockAction_title, message, null); + MemoryViewUtil.openError(DebugUIMessages.AddMemoryBlockAction_title, message, null); exit = false; } } return exit; } - - /* (non-Javadoc) - * @see org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse.debug.core.DebugEvent[]) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse + * .debug.core.DebugEvent[]) */ + @Override public void handleDebugEvents(DebugEvent[] events) { - for (int i=0; i < events.length; i++) - handleDebugEvent(events[i]); - } - - private void handleDebugEvent(DebugEvent event) - { + for (int i = 0; i < events.length; i++) { + handleDebugEvent(events[i]); + } + } + + private void handleDebugEvent(DebugEvent event) { // update action enablement based on debug event Object src = event.getSource(); IDebugTarget srcDT = null; IDebugTarget selectionDT = null; - - if (event.getKind() == DebugEvent.TERMINATE) - { - if (src instanceof ITerminate && src instanceof IDebugElement) - { - srcDT = ((IDebugElement)src).getDebugTarget(); + + if (event.getKind() == DebugEvent.TERMINATE) { + if (src instanceof ITerminate && src instanceof IDebugElement) { + srcDT = ((IDebugElement) src).getDebugTarget(); } - - if (fCurrentContext instanceof IDebugElement) - { - selectionDT = ((IDebugElement)fCurrentContext).getDebugTarget(); + + if (fCurrentContext instanceof IDebugElement) { + selectionDT = ((IDebugElement) fCurrentContext).getDebugTarget(); } // disable action if the debug target is terminated. - if (srcDT == selectionDT) - { + if (srcDT == selectionDT) { setEnabled(false); } } // handle change event from memory block retrieval object // to allow non-standard debug models to update the action - else if (event.getKind() == DebugEvent.CHANGE && event.getDetail() == DebugEvent.STATE) - { + else if (event.getKind() == DebugEvent.CHANGE && event.getDetail() == DebugEvent.STATE) { Object evtSrc = event.getSource(); - if (evtSrc == MemoryViewUtil.getMemoryBlockRetrieval(fCurrentContext)) + if (evtSrc == MemoryViewUtil.getMemoryBlockRetrieval(fCurrentContext)) { updateAction(fCurrentContext); + } } } - + /** - * Return the last memory block added to memory block manager via this action. + * Return the last memory block added to memory block manager via this + * action. + * * @return Returns the fLastMemoryBlock. */ public IMemoryBlock getLastMemoryBlock() { return fLastMemoryBlock; } - + protected void dispose() { - + // remove listeners DebugPlugin.getDefault().removeDebugEventListener(this); DebugUITools.removePartDebugContextListener(fSite.getSite(), this); } - - private void addDefaultRenderings(IMemoryBlock memoryBlock) - { + + private void addDefaultRenderings(IMemoryBlock memoryBlock) { IMemoryRenderingType primaryType = DebugUITools.getMemoryRenderingManager().getPrimaryRenderingType(memoryBlock); IMemoryRenderingType renderingTypes[] = DebugUITools.getMemoryRenderingManager().getDefaultRenderingTypes(memoryBlock); - + // create primary rendering try { - if (primaryType != null) - { + if (primaryType != null) { createRenderingInContainer(memoryBlock, primaryType, IDebugUIConstants.ID_RENDERING_VIEW_PANE_1); - } - else if (renderingTypes.length > 0) - { + } else if (renderingTypes.length > 0) { primaryType = renderingTypes[0]; createRenderingInContainer(memoryBlock, renderingTypes[0], IDebugUIConstants.ID_RENDERING_VIEW_PANE_1); } } catch (CoreException e1) { - DebugUIPlugin.log(e1); + DebugUIPlugin.log(e1); } - - for (int i = 0; i<renderingTypes.length; i++) - { + + for (int i = 0; i < renderingTypes.length; i++) { try { boolean create = true; - if (primaryType != null) - { - if (primaryType.getId().equals(renderingTypes[i].getId())) + if (primaryType != null) { + if (primaryType.getId().equals(renderingTypes[i].getId())) { create = false; + } } - if (create) + if (create) { createRenderingInContainer(memoryBlock, renderingTypes[i], IDebugUIConstants.ID_RENDERING_VIEW_PANE_2); + } } catch (CoreException e) { DebugUIPlugin.log(e); } @@ -400,33 +380,39 @@ public class AddMemoryBlockAction extends Action implements IDebugContextListene rendering.init(container, memoryBlock); container.addMemoryRendering(rendering); } - - protected MemoryView getMemoryView() - { - if (fSite instanceof MemoryView) - return (MemoryView)fSite; + + protected MemoryView getMemoryView() { + if (fSite instanceof MemoryView) { + return (MemoryView) fSite; + } return null; } - - protected void updateAction(final Object debugContext) - { + + protected void updateAction(final Object debugContext) { Job job = new Job("Update Add Memory Block Action") { //$NON-NLS-1$ + @Override protected IStatus run(IProgressMonitor monitor) { setEnabled(MemoryViewUtil.isValidContext(debugContext)); return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener#contextEvent(org.eclipse.debug.internal.ui.contexts.provisional.DebugContextEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener + * #contextEvent + * (org.eclipse.debug.internal.ui.contexts.provisional.DebugContextEvent) */ + @Override public void debugContextChanged(DebugContextEvent event) { if ((event.getFlags() & DebugContextEvent.ACTIVATED) > 0) { IAdaptable context = DebugUITools.getPartDebugContext(fSite.getSite()); updateAction(context); - fCurrentContext = context; + fCurrentContext = context; } } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingAction.java index ab9fe9825..c6fcd7ab6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingAction.java @@ -22,23 +22,23 @@ import org.eclipse.ui.PlatformUI; * Toolbar "Add Memory Rendering Action" from Memory Rendering Pane */ public class AddMemoryRenderingAction extends AddMemoryBlockAction { - + private IMemoryRenderingContainer fContainer; - - public AddMemoryRenderingAction(IMemoryRenderingContainer container) - { - super(DebugUIMessages.AddMemoryRenderingAction_Add_renderings, AS_PUSH_BUTTON, container.getMemoryRenderingSite()); - setToolTipText(DebugUIMessages.AddMemoryRenderingAction_Add_renderings); + + public AddMemoryRenderingAction(IMemoryRenderingContainer container) { + super(DebugUIMessages.AddMemoryRenderingAction_Add_renderings, AS_PUSH_BUTTON, container.getMemoryRenderingSite()); + setToolTipText(DebugUIMessages.AddMemoryRenderingAction_Add_renderings); PlatformUI.getWorkbench().getHelpSystem().setHelp(this, DebugUIPlugin.getUniqueIdentifier() + ".AddRenderingContextAction_context"); //$NON-NLS-1$ fContainer = container; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { if (fContainer instanceof RenderingViewPane) ((RenderingViewPane) fContainer).showCreateRenderingTab(); } } - diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingContextAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingContextAction.java index b339883c1..b1da6ccef 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingContextAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingContextAction.java @@ -17,36 +17,36 @@ import org.eclipse.jface.viewers.ISelection; import org.eclipse.ui.IViewActionDelegate; import org.eclipse.ui.IViewPart; - public class AddMemoryRenderingContextAction implements IViewActionDelegate { private IMemoryRenderingSite fMemoryView; - - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) */ + @Override public void init(IViewPart view) { - - if (view instanceof IMemoryRenderingSite) - { - fMemoryView = (IMemoryRenderingSite)view; - } + + if (view instanceof IMemoryRenderingSite) { + fMemoryView = (IMemoryRenderingSite) view; + } } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { - + if (fMemoryView == null) return; - + IMemoryRenderingContainer container = getRenderingContainer(action); - if (container != null) - { + if (container != null) { AddMemoryRenderingAction addAction = new AddMemoryRenderingAction(container); - addAction.run(); + addAction.run(); addAction.dispose(); } } @@ -59,27 +59,28 @@ public class AddMemoryRenderingContextAction implements IViewActionDelegate { IMemoryRenderingContainer[] viewPanes = fMemoryView.getMemoryRenderingContainers(); String actionId = action.getId(); IMemoryRenderingContainer selectedPane = null; - - for (int i=0; i<viewPanes.length; i++) - { - if (actionId.indexOf(viewPanes[i].getId()) != -1) - { + + for (int i = 0; i < viewPanes.length; i++) { + if (actionId.indexOf(viewPanes[i].getId()) != -1) { selectedPane = viewPanes[i]; break; } } - + return selectedPane; } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action + * .IAction, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IAction action, ISelection selection) { IMemoryRenderingContainer container = getRenderingContainer(action); - if (container instanceof RenderingViewPane) - { - if (!((RenderingViewPane)container).canAddRendering()) + if (container instanceof RenderingViewPane) { + if (!((RenderingViewPane) container).canAddRendering()) action.setEnabled(false); else action.setEnabled(true); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingDialog.java index 618a68b0d..38e1906d9 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingDialog.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/AddMemoryRenderingDialog.java @@ -68,45 +68,43 @@ import org.eclipse.ui.progress.WorkbenchJob; * Dialog allowing user to add a memory rendering */ public class AddMemoryRenderingDialog extends SelectionDialog { - + private IMemoryBlock[] fMemoryBlocks; private Combo memoryBlock; private ListViewer fViewer; private IMemoryBlock fSelectedMemoryBlock; private Button addNew; - + private ISelectionChangedListener fSelectionChangedListener; private SelectionListener fSelectionListener; private SelectionAdapter fAddNewSelectionAdapter; private IMemoryRenderingSite fSite; - - private IMemoryBlockListener fMemoryBlockListener = new IMemoryBlockListener(){ - - public void memoryBlocksAdded(final IMemoryBlock[] memory) - { - if (memory.length > 0) - { + + private IMemoryBlockListener fMemoryBlockListener = new IMemoryBlockListener() { + + @Override + public void memoryBlocksAdded(final IMemoryBlock[] memory) { + if (memory.length > 0) { IMemoryBlock currentBlock = getMemoryBlockToSelect(memory[0]); - if (currentBlock == null) - { + if (currentBlock == null) { addNew(); - } - else - { + } else { populateDialog(currentBlock); } } } - public void memoryBlocksRemoved(IMemoryBlock[] memory) - { + + @Override + public void memoryBlocksRemoved(IMemoryBlock[] memory) { } }; - - private IMemoryRenderingBindingsListener fBindingListener = new IMemoryRenderingBindingsListener() - { + + private IMemoryRenderingBindingsListener fBindingListener = new IMemoryRenderingBindingsListener() { + @Override public void memoryRenderingBindingsChanged() { - UIJob job = new UIJob("refresh"){ //$NON-NLS-1$ - + UIJob job = new UIJob("refresh") { //$NON-NLS-1$ + + @Override public IStatus runInUIThread(IProgressMonitor monitor) { fViewer.refresh(); return Status.OK_STATUS; @@ -115,145 +113,186 @@ public class AddMemoryRenderingDialog extends SelectionDialog { job.setSystem(true); job.schedule(); } - + }; - class MemoryRenderingLabelProvider implements ILabelProvider - { - - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) + class MemoryRenderingLabelProvider implements ILabelProvider { + + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) */ + @Override public Image getImage(Object element) { return null; } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ + @Override public String getText(Object element) { - if (element instanceof IMemoryRenderingType) - { - String label = ((IMemoryRenderingType)element).getLabel(); + if (element instanceof IMemoryRenderingType) { + String label = ((IMemoryRenderingType) element).getLabel(); return label; } - return element.toString(); + return element.toString(); } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse + * .jface.viewers.ILabelProviderListener) */ + @Override public void addListener(ILabelProviderListener listener) { } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ + @Override public void dispose() { } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java + * .lang.Object, java.lang.String) */ + @Override public boolean isLabelProperty(Object element, String property) { return false; } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse + * .jface.viewers.ILabelProviderListener) */ + @Override public void removeListener(ILabelProviderListener listener) { } } - - class MemoryRenderingContentProvider implements IStructuredContentProvider - { - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) + class MemoryRenderingContentProvider implements IStructuredContentProvider { + + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.IStructuredContentProvider#getElements( + * java.lang.Object) */ + @Override public Object[] getElements(Object inputElement) { - IMemoryRenderingType[] renderings = DebugUITools.getMemoryRenderingManager().getRenderingTypes((IMemoryBlock)inputElement); + IMemoryRenderingType[] renderings = DebugUITools.getMemoryRenderingManager().getRenderingTypes((IMemoryBlock) inputElement); return renderings; } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ + @Override public void dispose() { } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse + * .jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ + @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } - + } - - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.window.Window#close() */ + @Override public boolean close() { - + fViewer.removeSelectionChangedListener(fSelectionChangedListener); memoryBlock.removeSelectionListener(fSelectionListener); addNew.removeSelectionListener(fAddNewSelectionAdapter); DebugPlugin.getDefault().getMemoryBlockManager().removeListener(fMemoryBlockListener); DebugUITools.getMemoryRenderingManager().removeListener(fBindingListener); - + return super.close(); } - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse + * .swt.widgets.Composite) */ + @Override protected void createButtonsForButtonBar(Composite parent) { super.createButtonsForButtonBar(parent); getButton(IDialogConstants.OK_ID).setEnabled(false); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.dialogs.SelectionDialog#getResult() */ + @Override public Object[] getResult() { - + Object[] results = super.getResult(); - - if (results != null) - { - Object[] renderings = ((IStructuredSelection)results[0]).toArray(); + + if (results != null) { + Object[] renderings = ((IStructuredSelection) results[0]).toArray(); return renderings; } - return new Object[0]; + return new Object[0]; } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#cancelPressed() */ + @Override protected void cancelPressed() { - + setResult(null); - + super.cancelPressed(); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#okPressed() */ + @Override protected void okPressed() { - + ISelection select = fViewer.getSelection(); - setSelectionResult(new Object[]{select}); - + setSelectionResult(new Object[] { select }); + super.okPressed(); } - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets + * .Composite) */ + @Override protected Control createDialogArea(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, DebugUIPlugin.getUniqueIdentifier() + ".AddMemoryRenderingDialog_context"); //$NON-NLS-1$ @@ -262,268 +301,253 @@ public class AddMemoryRenderingDialog extends SelectionDialog { compositeLayout.numColumns = 3; compositeLayout.makeColumnsEqualWidth = true; composite.setLayout(compositeLayout); - - GridData comositeSpec= new GridData(); - comositeSpec.grabExcessVerticalSpace= true; - comositeSpec.grabExcessHorizontalSpace= true; - comositeSpec.horizontalAlignment= GridData.FILL; - comositeSpec.verticalAlignment= GridData.CENTER; + + GridData comositeSpec = new GridData(); + comositeSpec.grabExcessVerticalSpace = true; + comositeSpec.grabExcessHorizontalSpace = true; + comositeSpec.horizontalAlignment = GridData.FILL; + comositeSpec.verticalAlignment = GridData.CENTER; composite.setLayoutData(comositeSpec); - + Label textLabel = new Label(composite, SWT.NONE); - textLabel.setText(DebugUIMessages.AddMemoryRenderingDialog_Memory_Monitor); + textLabel.setText(DebugUIMessages.AddMemoryRenderingDialog_Memory_Monitor); GridData textLayout = new GridData(); - textLayout.verticalAlignment=GridData.CENTER; - textLayout.horizontalAlignment=GridData.BEGINNING; + textLayout.verticalAlignment = GridData.CENTER; + textLayout.horizontalAlignment = GridData.BEGINNING; textLabel.setLayoutData(textLayout); - + memoryBlock = new Combo(composite, SWT.BORDER | SWT.READ_ONLY); - GridData spec= new GridData(GridData.FILL_HORIZONTAL); - spec.grabExcessVerticalSpace= false; - spec.grabExcessHorizontalSpace= false; - spec.horizontalAlignment= GridData.FILL; - spec.verticalAlignment= GridData.FILL; + GridData spec = new GridData(GridData.FILL_HORIZONTAL); + spec.grabExcessVerticalSpace = false; + spec.grabExcessHorizontalSpace = false; + spec.horizontalAlignment = GridData.FILL; + spec.verticalAlignment = GridData.FILL; spec.horizontalSpan = 4; memoryBlock.setLayoutData(spec); - + Label filler = new Label(composite, SWT.NONE); filler.setText(" "); //$NON-NLS-1$ GridData fillerData = new GridData(GridData.FILL_HORIZONTAL); fillerData.horizontalSpan = 2; filler.setLayoutData(fillerData); - + addNew = new Button(composite, SWT.NONE); - addNew.setText(DebugUIMessages.AddMemoryRenderingDialog_Add_New); - GridData specButton= new GridData(); - specButton.horizontalAlignment= GridData.END; - specButton.verticalAlignment= GridData.CENTER; + addNew.setText(DebugUIMessages.AddMemoryRenderingDialog_Add_New); + GridData specButton = new GridData(); + specButton.horizontalAlignment = GridData.END; + specButton.verticalAlignment = GridData.CENTER; addNew.setLayoutData(specButton); - + fAddNewSelectionAdapter = new SelectionAdapter() { + @Override public void widgetSelected(SelectionEvent e) { RetargetAddMemoryBlockAction action = new RetargetAddMemoryBlockAction(fSite, false); action.run(); action.dispose(); - }}; - + } + }; + addNew.addSelectionListener(fAddNewSelectionAdapter); - - fSelectionListener = new SelectionListener(){ + fSelectionListener = new SelectionListener() { + + @Override public void widgetSelected(SelectionEvent e) { - + int idx = memoryBlock.getSelectionIndex(); - + // avoid null pointer exception if (fMemoryBlocks == null) return; - + fSelectedMemoryBlock = fMemoryBlocks[idx]; - - fViewer.setInput(fSelectedMemoryBlock); - + + fViewer.setInput(fSelectedMemoryBlock); + } + @Override public void widgetDefaultSelected(SelectionEvent e) { - }}; - + } + }; + memoryBlock.addSelectionListener(fSelectionListener); - + Label renderingLabel = new Label(composite, SWT.NONE); - renderingLabel.setText(DebugUIMessages.AddMemoryRenderingDialog_Memory_renderings); + renderingLabel.setText(DebugUIMessages.AddMemoryRenderingDialog_Memory_renderings); GridData renderingLayout = new GridData(); renderingLayout.horizontalAlignment = GridData.BEGINNING; renderingLayout.verticalAlignment = GridData.CENTER; renderingLayout.horizontalSpan = 3; renderingLabel.setLayoutData(renderingLayout); - + fViewer = new ListViewer(composite); fViewer.setContentProvider(new MemoryRenderingContentProvider()); fViewer.setLabelProvider(new MemoryRenderingLabelProvider()); - + GridData listLayout = new GridData(GridData.FILL_BOTH); listLayout.horizontalSpan = 3; - listLayout.heightHint =140; + listLayout.heightHint = 140; fViewer.getControl().setLayoutData(listLayout); - - fViewer.addDoubleClickListener(new IDoubleClickListener (){ + fViewer.addDoubleClickListener(new IDoubleClickListener() { + + @Override public void doubleClick(DoubleClickEvent event) { okPressed(); - }}); - + } + }); + IMemoryBlock currentBlock = getMemoryBlockToSelect(null); - if (currentBlock == null) - { + if (currentBlock == null) { addNew(); - } - else - { + } else { populateDialog(currentBlock); } - - + fSelectionChangedListener = new ISelectionChangedListener() { + @Override public void selectionChanged(SelectionChangedEvent event) { - ISelection selection = fViewer.getSelection(); - - if (selection.isEmpty()) - { + ISelection selection = fViewer.getSelection(); + + if (selection.isEmpty()) { getButton(IDialogConstants.OK_ID).setEnabled(false); - } - else - { + } else { getButton(IDialogConstants.OK_ID).setEnabled(true); } - }}; - + } + }; + fViewer.addSelectionChangedListener(fSelectionChangedListener); - + DebugPlugin.getDefault().getMemoryBlockManager().addListener(fMemoryBlockListener); DebugUITools.getMemoryRenderingManager().addListener(fBindingListener); - + return composite; } public AddMemoryRenderingDialog(Shell parent, IMemoryRenderingSite site) { super(parent); - super.setTitle(DebugUIMessages.AddMemoryRenderingDialog_Add_memory_rendering); + super.setTitle(DebugUIMessages.AddMemoryRenderingDialog_Add_memory_rendering); setShellStyle(getShellStyle() | SWT.RESIZE); fSite = site; } - - - private void doPopulateDialog(Combo combo, ListViewer viewer, String[] labels, int selectionIdx, IMemoryBlock currentBlock) - { + + private void doPopulateDialog(Combo combo, ListViewer viewer, String[] labels, int selectionIdx, IMemoryBlock currentBlock) { // clean up combo.removeAll(); - - for (int i=0; i<labels.length; i++) - { + + for (int i = 0; i < labels.length; i++) { combo.add(labels[i]); } combo.select(selectionIdx); fSelectedMemoryBlock = currentBlock; - + viewer.setInput(currentBlock); } - - private IMemoryBlock getMemoryBlockToSelect(IMemoryBlock lastAdded) - { + + private IMemoryBlock getMemoryBlockToSelect(IMemoryBlock lastAdded) { IMemoryBlock currentBlock = null; - + if (lastAdded != null) currentBlock = lastAdded; - else - { + else { // take Memory View's selection if possible ISelectionProvider selectionProvider = fSite.getSite().getSelectionProvider(); ISelection selection = null; - + if (selectionProvider != null) selection = selectionProvider.getSelection(); - else // otherwise, take selection from selection service - selection = DebugUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection(IDebugUIConstants.ID_MEMORY_VIEW); - + else + // otherwise, take selection from selection service + selection = DebugUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection(IDebugUIConstants.ID_MEMORY_VIEW); + IMemoryBlock element = getMemoryBlock(selection); - - if (element == null) - { - IAdaptable context = DebugUITools.getPartDebugContext(fSite.getSite()); - - if (context != null) - { + + if (element == null) { + IAdaptable context = DebugUITools.getPartDebugContext(fSite.getSite()); + + if (context != null) { IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); - + if (retrieval == null) return currentBlock; - + IMemoryBlock[] blocks = new IMemoryBlock[0]; - + if (retrieval != null) blocks = MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieval); - + if (blocks.length > 0) currentBlock = blocks[0]; } - } - else - { + } else { currentBlock = element; } } return currentBlock; } - - private String[] getLabels(IMemoryBlock[] memoryBlocks) - { + + private String[] getLabels(IMemoryBlock[] memoryBlocks) { String[] labels = new String[memoryBlocks.length]; - for (int i=0; i<memoryBlocks.length; i++) - { + for (int i = 0; i < memoryBlocks.length; i++) { String text = IInternalDebugCoreConstants.EMPTY_STRING; - if (memoryBlocks[i] instanceof IMemoryBlockExtension) - { + if (memoryBlocks[i] instanceof IMemoryBlockExtension) { try { - text = ((IMemoryBlockExtension)memoryBlocks[i]).getExpression(); - + text = ((IMemoryBlockExtension) memoryBlocks[i]).getExpression(); + if (text == null) - text = DebugUIMessages.AddMemoryRenderingDialog_Unknown; - - if (((IMemoryBlockExtension)memoryBlocks[i]).getBigBaseAddress() != null) - { + text = DebugUIMessages.AddMemoryRenderingDialog_Unknown; + + if (((IMemoryBlockExtension) memoryBlocks[i]).getBigBaseAddress() != null) { text += " : 0x"; //$NON-NLS-1$ - text += ((IMemoryBlockExtension)memoryBlocks[i]).getBigBaseAddress().toString(16); - } + text += ((IMemoryBlockExtension) memoryBlocks[i]).getBigBaseAddress().toString(16); + } } catch (DebugException e) { long address = memoryBlocks[i].getStartAddress(); text = Long.toHexString(address); } - } - else - { + } else { long address = memoryBlocks[i].getStartAddress(); text = Long.toHexString(address); } - + // ask decorator to decorate to ensure consistent label - ILabelDecorator decorator = (ILabelDecorator)fMemoryBlocks[i].getAdapter(ILabelDecorator.class); + ILabelDecorator decorator = (ILabelDecorator) fMemoryBlocks[i].getAdapter(ILabelDecorator.class); if (decorator != null) text = decorator.decorateText(text, fMemoryBlocks[i]); - + labels[i] = text; } return labels; } - - private IMemoryBlock getMemoryBlock(ISelection selection) - { + + private IMemoryBlock getMemoryBlock(ISelection selection) { if (!(selection instanceof IStructuredSelection)) return null; - //only single selection of debug element is allowed for this action - if (selection.isEmpty() || ((IStructuredSelection)selection).size() > 1) - { + // only single selection of debug element is allowed for this action + if (selection.isEmpty() || ((IStructuredSelection) selection).size() > 1) { return null; } - Object elem = ((IStructuredSelection)selection).getFirstElement(); - + Object elem = ((IStructuredSelection) selection).getFirstElement(); + if (elem instanceof IMemoryBlock) - return (IMemoryBlock)elem; + return (IMemoryBlock) elem; else if (elem instanceof IMemoryRendering) - return ((IMemoryRendering)elem).getMemoryBlock(); + return ((IMemoryRendering) elem).getMemoryBlock(); else return null; } - - public IMemoryBlock getMemoryBlock() - { + + public IMemoryBlock getMemoryBlock() { return fSelectedMemoryBlock; } - + /** * @param currentBlock the current memory block context */ @@ -531,40 +555,39 @@ public class AddMemoryRenderingDialog extends SelectionDialog { final IMemoryBlock selectMB = currentBlock; Job job = new Job("Populate dialog") //$NON-NLS-1$ { + @Override protected IStatus run(IProgressMonitor monitor) { - IMemoryBlockRetrieval mbRetrieval = MemoryViewUtil.getMemoryBlockRetrieval(selectMB); - - if (mbRetrieval != null) - { + IMemoryBlockRetrieval mbRetrieval = MemoryViewUtil.getMemoryBlockRetrieval(selectMB); + + if (mbRetrieval != null) { fMemoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(mbRetrieval); int selectionIdx = 0; - for (int i=0; i<fMemoryBlocks.length; i++) - { - if (fMemoryBlocks[i] == selectMB) - { + for (int i = 0; i < fMemoryBlocks.length; i++) { + if (fMemoryBlocks[i] == selectMB) { selectionIdx = i; break; } } - + final String[] labels = getLabels(fMemoryBlocks); final int idx = selectionIdx; final IMemoryBlock selectedBlk = selectMB; - WorkbenchJob wbJob = new WorkbenchJob("populate dialog"){ //$NON-NLS-1$ - + WorkbenchJob wbJob = new WorkbenchJob("populate dialog") { //$NON-NLS-1$ + + @Override public IStatus runInUIThread(IProgressMonitor wbMonitor) { - doPopulateDialog(memoryBlock, fViewer, labels, idx, selectedBlk); + doPopulateDialog(memoryBlock, fViewer, labels, idx, selectedBlk); return Status.OK_STATUS; - }}; - wbJob.setSystem(true); - wbJob.schedule(); - } - else - { - DebugUIPlugin.logErrorMessage("Unable to obtain memory block retrieval."); //$NON-NLS-1$ - } + } + }; + wbJob.setSystem(true); + wbJob.schedule(); + } else { + DebugUIPlugin.logErrorMessage("Unable to obtain memory block retrieval."); //$NON-NLS-1$ + } return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } @@ -573,13 +596,15 @@ public class AddMemoryRenderingDialog extends SelectionDialog { * */ private void addNew() { - WorkbenchJob job = new WorkbenchJob("populate dialog"){ //$NON-NLS-1$ + WorkbenchJob job = new WorkbenchJob("populate dialog") { //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { memoryBlock.add(DebugUIMessages.AddMemoryRenderingDialog_Add_New); memoryBlock.select(0); return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/CodePagesPreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/CodePagesPreferencePage.java index 0e9a10395..69d744617 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/CodePagesPreferencePage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/CodePagesPreferencePage.java @@ -9,7 +9,6 @@ * IBM Corporation - initial API and implementation *******************************************************************************/ - package org.eclipse.debug.internal.ui.views.memory; import java.io.UnsupportedEncodingException; @@ -38,52 +37,53 @@ public class CodePagesPreferencePage extends FieldEditorPreferencePage { setTitle(DebugUIMessages.CodePagesPrefDialog_1); } + @Override protected void createFieldEditors() { fAsciiCodePage = new StringFieldEditor(IDebugUIConstants.PREF_DEFAULT_ASCII_CODE_PAGE, DebugUIMessages.CodePagesPrefDialog_2, getFieldEditorParent()); fAsciiCodePage.setEmptyStringAllowed(false); addField(fAsciiCodePage); - + fEbcdicCodePage = new StringFieldEditor(IDebugUIConstants.PREF_DEFAULT_EBCDIC_CODE_PAGE, DebugUIMessages.CodePagesPrefDialog_4, getFieldEditorParent()); fEbcdicCodePage.setEmptyStringAllowed(false); addField(fEbcdicCodePage); } + @Override public boolean performOk() { - + if (fAsciiCodePage == null || fEbcdicCodePage == null) return super.performOk(); - + // check that the codepages are supported String asciiCodePage = fAsciiCodePage.getStringValue(); asciiCodePage = asciiCodePage.trim(); try { - new String(new byte[]{1}, asciiCodePage); + new String(new byte[] { 1 }, asciiCodePage); } catch (UnsupportedEncodingException e) { Shell shell = DebugUIPlugin.getShell(); - if (shell != null) - { - IStatus status = DebugUIPlugin.newErrorStatus(DebugUIMessages.CodePagesPrefDialog_0, e); - ErrorDialog.openError(shell, DebugUIMessages.CodePagesPrefDialog_6, DebugUIMessages.CodePagesPrefDialog_7, status); // + if (shell != null) { + IStatus status = DebugUIPlugin.newErrorStatus(DebugUIMessages.CodePagesPrefDialog_0, e); + ErrorDialog.openError(shell, DebugUIMessages.CodePagesPrefDialog_6, DebugUIMessages.CodePagesPrefDialog_7, status); // } return false; } - + String ebcdicCodePage = fEbcdicCodePage.getStringValue(); ebcdicCodePage = ebcdicCodePage.trim(); try { - new String(new byte[]{1}, ebcdicCodePage); + new String(new byte[] { 1 }, ebcdicCodePage); } catch (UnsupportedEncodingException e) { Shell shell = DebugUIPlugin.getShell(); - if (shell != null) - { - IStatus status = DebugUIPlugin.newErrorStatus(DebugUIMessages.CodePagesPrefDialog_0, e); - ErrorDialog.openError(shell, DebugUIMessages.CodePagesPrefDialog_8, DebugUIMessages.CodePagesPrefDialog_9, status); // + if (shell != null) { + IStatus status = DebugUIPlugin.newErrorStatus(DebugUIMessages.CodePagesPrefDialog_0, e); + ErrorDialog.openError(shell, DebugUIMessages.CodePagesPrefDialog_8, DebugUIMessages.CodePagesPrefDialog_9, status); // } return false; } return super.performOk(); } + @Override protected Control createContents(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, DebugUIPlugin.getUniqueIdentifier() + ".CodePagesPrefDialog_context"); //$NON-NLS-1$ return super.createContents(parent); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryView.java index aa0ae6580..61933c8dc 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryView.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryView.java @@ -11,28 +11,28 @@ package org.eclipse.debug.internal.ui.views.memory; - /** - * Functions to allow user to control the Memory View or the Memory Rendering View + * Functions to allow user to control the Memory View or the Memory Rendering + * View * * @since 3.0 */ -public interface IMemoryView -{ +public interface IMemoryView { /** * @return the top view tab from the Memory View */ - public IMemoryViewTab getTopMemoryTab( ); - + public IMemoryViewTab getTopMemoryTab(); + /** * @return all view tabs from current tab folder */ public IMemoryViewTab[] getAllViewTabs(); - + /** * Move specified view tab to the top + * * @param viewTab */ public void moveToTop(IMemoryViewTab viewTab); - + } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewPane.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewPane.java index e7329f13d..b092ff38c 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewPane.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewPane.java @@ -16,79 +16,81 @@ import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; - /** * Represent a view pane in the memory view. * - * This is an internal interface for mananging the view panes within the Memory View + * This is an internal interface for mananging the view panes within the Memory + * View + * * @since 3.1 */ public interface IMemoryViewPane { - + /** - * Create the view pane with the given parent composite, and pane - * id. + * Create the view pane with the given parent composite, and pane id. + * * @param parent * @param paneId * @param label * @return the control of the view pane */ public Control createViewPane(Composite parent, String paneId, String label); - + /** - * Restore view pane based on current selection from the debug view. - * Create memory blocks or renderings that currently exist in the debug - * session. + * Restore view pane based on current selection from the debug view. Create + * memory blocks or renderings that currently exist in the debug session. */ public void restoreViewPane(); - + /** * Dispose the view pane */ public void dispose(); - + /** * @return unique identifier of the view pane */ public String getId(); - + /** - * @return array of actions to be contributed to the view pane's - * acition bar. + * @return array of actions to be contributed to the view pane's acition + * bar. */ public IAction[] getActions(); - + /** - * Add the given selection listener to the view pane. The selection - * listener gets notified when the selection from the view pane - * has changed. + * Add the given selection listener to the view pane. The selection listener + * gets notified when the selection from the view pane has changed. + * * @param listener */ public void addSelectionListener(ISelectionChangedListener listener); - + /** - * Remove the selection listener from the view pane. The listener - * will no longer get notified when selection is changed. + * Remove the selection listener from the view pane. The listener will no + * longer get notified when selection is changed. + * * @param listener */ public void removeSelctionListener(ISelectionChangedListener listener); - + /** * @return the selection provider of the view pane */ public ISelectionProvider getSelectionProvider(); - + /** * @return the control for ths memory view pane */ public Control getControl(); - + /** * Called when the view pane becomes visible or hidden + * * @param visible visibility state of teh view pane */ public void setVisible(boolean visible); - + /** * @return if the view pane is currently visible */ diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewTab.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewTab.java index c9dab6a24..0b5f388bc 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewTab.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/IMemoryViewTab.java @@ -9,55 +9,53 @@ * IBM Corporation - initial API and implementation *******************************************************************************/ - package org.eclipse.debug.internal.ui.views.memory; import org.eclipse.debug.ui.memory.IMemoryRendering; - /** * Represent a view tab in the Memory View or Memory Rendering View * - * Refer to AbstractMemoryViewTab. - * This is an internal interface. This class is not intended to be implemented by clients. + * Refer to AbstractMemoryViewTab. This is an internal interface. This class is + * not intended to be implemented by clients. * * @since 3.0 */ -public interface IMemoryViewTab -{ +public interface IMemoryViewTab { /** * Remove the view tab. */ public void dispose(); - + /** * @return if the view tab is disposed */ public boolean isDisposed(); - + /** * @return enablement state of the view tab. */ public boolean isEnabled(); - - + /** * Sets the enablament state of the view tab. + * * @param enabled */ public void setEnabled(boolean enabled); - + /** * Set view tab's label + * * @param label */ public void setTabLabel(String label); - + /** * @return view tab's label, null if the label is not available */ public String getTabLabel(); - + /** * @return the rendering of this view tab */ diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/LinkRenderingPanesAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/LinkRenderingPanesAction.java index 767f3c588..7af713e31 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/LinkRenderingPanesAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/LinkRenderingPanesAction.java @@ -20,35 +20,38 @@ import org.eclipse.ui.IViewPart; /** * Action to link/unlink rendering view panes */ -public class LinkRenderingPanesAction implements IViewActionDelegate{ +public class LinkRenderingPanesAction implements IViewActionDelegate { IMemoryRenderingSite fRenderingSite; private MemoryViewSynchronizationService fMemSyncService; - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) */ - public void init(IViewPart view) { - - if (view instanceof IMemoryRenderingSite) - { - fRenderingSite = (IMemoryRenderingSite)view; - + @Override + public void init(IViewPart view) { + + if (view instanceof IMemoryRenderingSite) { + fRenderingSite = (IMemoryRenderingSite) view; + IMemoryRenderingSynchronizationService syncService = fRenderingSite.getSynchronizationService(); - + if (syncService instanceof MemoryViewSynchronizationService) - fMemSyncService = (MemoryViewSynchronizationService)syncService; + fMemSyncService = (MemoryViewSynchronizationService) syncService; } } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { - + if (fMemSyncService == null) return; - + fMemSyncService.setEnabled(!fMemSyncService.isEnabled()); updateActionState(action); } @@ -57,20 +60,24 @@ public class LinkRenderingPanesAction implements IViewActionDelegate{ * @param action */ private void updateActionState(IAction action) { - + if (fMemSyncService == null) return; - + if (fMemSyncService.isEnabled()) action.setChecked(true); else action.setChecked(false); } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action + * .IAction, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IAction action, ISelection selection) { - updateActionState(action); + updateActionState(action); } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java index 2e4179594..0adc1a39e 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryBlocksTreeViewPane.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2010 IBM Corporation and others. + * Copyright (c) 2004, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -11,7 +11,7 @@ * display memory blocks that do not reference IDebugTarget * *******************************************************************************/ - + package org.eclipse.debug.internal.ui.views.memory; import java.util.ArrayList; @@ -66,14 +66,13 @@ import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.progress.UIJob; - /** * Tree viewer for memory blocks */ -public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionChangedListener, IMemoryViewPane, IMemoryRenderingContainer{ - +public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionChangedListener, IMemoryViewPane, IMemoryRenderingContainer { + public static final String PANE_ID = DebugUIPlugin.getUniqueIdentifier() + ".MemoryView.MemoryBlocksTreeViewPane"; //$NON-NLS-1$ - + private IViewPart fParent; private IPresentationContext fPresentationContext; private MemoryViewTreeViewer fTreeViewer; @@ -87,85 +86,83 @@ public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionC private TreeViewPaneContextListener fDebugContextListener; private ViewPaneEventHandler fEvtHandler; private String fLabel; - - class TreeViewerRemoveMemoryBlocksAction extends Action - { - TreeViewerRemoveMemoryBlocksAction() - { + + class TreeViewerRemoveMemoryBlocksAction extends Action { + TreeViewerRemoveMemoryBlocksAction() { super(); - setText(DebugUIMessages.RemoveMemoryBlockAction_title); + setText(DebugUIMessages.RemoveMemoryBlockAction_title); - setToolTipText(DebugUIMessages.RemoveMemoryBlockAction_tooltip); - setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_REMOVE_MEMORY)); + setToolTipText(DebugUIMessages.RemoveMemoryBlockAction_tooltip); + setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_REMOVE_MEMORY)); setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_LCL_REMOVE_MEMORY)); setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_REMOVE_MEMORY)); PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugUIConstants.PLUGIN_ID + ".RemoveMemoryBlockAction_context"); //$NON-NLS-1$ setEnabled(true); } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { ISelection selected = fTreeViewer.getSelection(); - - if (selected != null && selected instanceof IStructuredSelection) - { - Object[] selectedMemBlks = ((IStructuredSelection)selected).toArray(); - ArrayList memoryBlocks = new ArrayList(); - for (int i=0; i<selectedMemBlks.length; i++) - { - if (selectedMemBlks[i] instanceof IMemoryBlock) + + if (selected != null && selected instanceof IStructuredSelection) { + Object[] selectedMemBlks = ((IStructuredSelection) selected).toArray(); + ArrayList<Object> memoryBlocks = new ArrayList<Object>(); + for (int i = 0; i < selectedMemBlks.length; i++) { + if (selectedMemBlks[i] instanceof IMemoryBlock) { memoryBlocks.add(selectedMemBlks[i]); + } } - - DebugPlugin.getDefault().getMemoryBlockManager().removeMemoryBlocks((IMemoryBlock[])memoryBlocks.toArray(new IMemoryBlock[memoryBlocks.size()])); + + DebugPlugin.getDefault().getMemoryBlockManager().removeMemoryBlocks(memoryBlocks.toArray(new IMemoryBlock[memoryBlocks.size()])); } } } - - class TreeViewerRemoveAllMemoryBlocksAction extends Action - { - TreeViewerRemoveAllMemoryBlocksAction() - { + + class TreeViewerRemoveAllMemoryBlocksAction extends Action { + TreeViewerRemoveAllMemoryBlocksAction() { super(); - setText(DebugUIMessages.MemoryBlocksTreeViewPane_2); + setText(DebugUIMessages.MemoryBlocksTreeViewPane_2); - setToolTipText(DebugUIMessages.MemoryBlocksTreeViewPane_2); - setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_REMOVE_ALL)); + setToolTipText(DebugUIMessages.MemoryBlocksTreeViewPane_2); + setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_REMOVE_ALL)); setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_REMOVE_ALL)); setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_REMOVE_ALL)); PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugUIConstants.PLUGIN_ID + ".RemoveAllMemoryBlocksAction_context"); //$NON-NLS-1$ } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { - - IWorkbenchWindow window= DebugUIPlugin.getActiveWorkbenchWindow(); + + IWorkbenchWindow window = DebugUIPlugin.getActiveWorkbenchWindow(); if (window == null) { return; } - boolean proceed = MessageDialog.openQuestion(window.getShell(), DebugUIMessages.MemoryBlocksTreeViewPane_0, DebugUIMessages.MemoryBlocksTreeViewPane_1); // + boolean proceed = MessageDialog.openQuestion(window.getShell(), DebugUIMessages.MemoryBlocksTreeViewPane_0, DebugUIMessages.MemoryBlocksTreeViewPane_1); // if (proceed) { IMemoryBlock[] memoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(fRetrieval); DebugPlugin.getDefault().getMemoryBlockManager().removeMemoryBlocks(memoryBlocks); } - } + } } - - class ViewPaneEventHandler implements IMemoryBlockListener, IDebugEventSetListener - { + + class ViewPaneEventHandler implements IMemoryBlockListener, IDebugEventSetListener { private boolean fDisposed = false; - - public ViewPaneEventHandler() - { + + public ViewPaneEventHandler() { DebugPlugin.getDefault().getMemoryBlockManager().addListener(this); DebugPlugin.getDefault().addDebugEventListener(this); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { @@ -174,54 +171,67 @@ public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionC DebugPlugin.getDefault().removeDebugEventListener(this); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockAdded(org.eclipse.debug.core.model.IMemoryBlock) + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener# + * MemoryBlockAdded(org.eclipse.debug.core.model.IMemoryBlock) */ + @Override public void memoryBlocksAdded(final IMemoryBlock[] memory) { // if the content provider is disposed, do not handle event - if (fDisposed) + if (fDisposed) { return; + } updateActionsEnablement(); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockRemoved(org.eclipse.debug.core.model.IMemoryBlock) + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener# + * MemoryBlockRemoved(org.eclipse.debug.core.model.IMemoryBlock) */ + @Override public void memoryBlocksRemoved(final IMemoryBlock[] memory) { - if (fDisposed) + if (fDisposed) { return; + } updateActionsEnablement(); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.BasicDebugViewContentProvider#doHandleDebugEvent(org.eclipse.debug.core.DebugEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.BasicDebugViewContentProvider + * #doHandleDebugEvent(org.eclipse.debug.core.DebugEvent) */ protected void doHandleDebugEvent(DebugEvent event) { - + // if the view is disposed, do not handle event - if (fDisposed) + if (fDisposed) { return; - - if (event.getKind() == DebugEvent.TERMINATE) - { - // should only handle the terminate event if the target is terminated - if (event.getSource() instanceof IDebugTarget) - { + } + + if (event.getKind() == DebugEvent.TERMINATE) { + // should only handle the terminate event if the target is + // terminated + if (event.getSource() instanceof IDebugTarget) { IMemoryBlockRetrieval srcRetrieval = MemoryViewUtil.getMemoryBlockRetrieval(event.getSource()); - if (srcRetrieval == fRetrieval) - { + if (srcRetrieval == fRetrieval) { // #setInput must be done on the UI thread - UIJob job = new UIJob("setInput"){ //$NON-NLS-1$ + UIJob job = new UIJob("setInput") { //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { - - // if viewpane is disposed, do not handle event - if (fTreeViewer.getContentProvider() == null) - return Status.OK_STATUS; - + + // if viewpane is disposed, do not handle event + if (fTreeViewer.getContentProvider() == null) { + return Status.OK_STATUS; + } + fTreeViewer.setInput(null); return Status.OK_STATUS; - }}; - + } + }; + job.setSystem(true); job.schedule(); } @@ -229,37 +239,32 @@ public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionC } } + @Override public void handleDebugEvents(DebugEvent[] events) { - for (int i=0; i<events.length; i++) - { + for (int i = 0; i < events.length; i++) { doHandleDebugEvent(events[i]); } } } - - class TreeViewPaneContextListener implements IDebugContextListener - { + + class TreeViewPaneContextListener implements IDebugContextListener { public void contextActivated(ISelection selection) { - - if (selection.isEmpty() && fRetrieval != null) - { + + if (selection.isEmpty() && fRetrieval != null) { fRetrieval = null; - if (fTreeViewer != null && fTreeViewer.getContentProvider() != null) + if (fTreeViewer != null && fTreeViewer.getContentProvider() != null) { fTreeViewer.setInput(fRetrieval); + } updateActionsEnablement(); return; } - - if (selection instanceof IStructuredSelection) - { - Object obj = ((IStructuredSelection)selection).getFirstElement(); - if (obj instanceof IAdaptable) - { - IAdaptable context = (IAdaptable)obj; + + if (selection instanceof IStructuredSelection) { + Object obj = ((IStructuredSelection) selection).getFirstElement(); + if (obj instanceof IAdaptable) { + IAdaptable context = (IAdaptable) obj; IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); - if (retrieval != null && retrieval != fRetrieval && - fTreeViewer != null && fTreeViewer.getContentProvider() != null) - { + if (retrieval != null && retrieval != fRetrieval && fTreeViewer != null && fTreeViewer.getContentProvider() != null) { // set new setting fRetrieval = retrieval; fTreeViewer.setInput(fRetrieval); @@ -269,79 +274,85 @@ public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionC } } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener#contextEvent(org.eclipse.debug.internal.ui.contexts.provisional.DebugContextEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener + * #contextEvent(org.eclipse.debug.internal.ui.contexts.provisional. + * DebugContextEvent) */ + @Override public void debugContextChanged(DebugContextEvent event) { if ((event.getFlags() & DebugContextEvent.ACTIVATED) > 0) { contextActivated(event.getContext()); } } } - - public MemoryBlocksTreeViewPane(IViewPart parent) - { + + public MemoryBlocksTreeViewPane(IViewPart parent) { fParent = parent; fSelectionProvider = new ViewPaneSelectionProvider(); } - - public Control createViewPane(Composite parent, String paneId, String label) - { + + @Override + public Control createViewPane(Composite parent, String paneId, String label) { fPaneId = paneId; int style = SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.VIRTUAL; fLabel = label; - + IMemoryRenderingSite site = getMemoryRenderingSite(); fPresentationContext = new MemoryViewPresentationContext(site, this, null); fTreeViewer = new MemoryViewTreeViewer(parent, style, fPresentationContext); - + IAdaptable context = DebugUITools.getPartDebugContext(fParent.getSite()); IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); - if (retrieval != null) + if (retrieval != null) { fTreeViewer.setInput(retrieval); - + } + fRetrieval = retrieval; - + fParent.getViewSite().getSelectionProvider().addSelectionChangedListener(this); fParent.getViewSite().getPage().addSelectionListener(this); - + fDebugContextListener = new TreeViewPaneContextListener(); DebugUITools.addPartDebugContextListener(fParent.getSite(), fDebugContextListener); - + fTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { + @Override public void selectionChanged(SelectionChangedEvent event) { ISelection treeSelected = event.getSelection(); fSelectionProvider.setSelection(treeSelected); - }}); + } + }); updateRetrieval(); fEvtHandler = new ViewPaneEventHandler(); - + // create context menu MenuManager mgr = createContextMenuManager(); Menu menu = mgr.createContextMenu(fTreeViewer.getControl()); fTreeViewer.getControl().setMenu(menu); - + GridData data = new GridData(); data.grabExcessHorizontalSpace = true; data.grabExcessVerticalSpace = true; data.horizontalAlignment = SWT.FILL; data.verticalAlignment = SWT.FILL; fTreeViewer.getControl().setLayoutData(data); - + updateActionsEnablement(); - + return fTreeViewer.getControl(); } - - + /** * */ private void updateRetrieval() { - + Object context = DebugUITools.getPartDebugContext(fParent.getSite()); fRetrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); } @@ -350,6 +361,7 @@ public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionC MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$ menuMgr.setRemoveAllWhenShown(true); menuMgr.addMenuListener(new IMenuListener() { + @Override public void menuAboutToShow(IMenuManager manager) { manager.add(fAddMemoryBlockAction); manager.add(fRemoveMemoryBlockAction); @@ -361,212 +373,238 @@ public class MemoryBlocksTreeViewPane implements ISelectionListener, ISelectionC fParent.getSite().registerContextMenu(getId(), menuMgr, fSelectionProvider); return menuMgr; } - - public void dispose() - { + + @Override + public void dispose() { fParent.getViewSite().getSelectionProvider().removeSelectionChangedListener(this); - fParent.getViewSite().getPage().removeSelectionListener(this); + fParent.getViewSite().getPage().removeSelectionListener(this); fAddMemoryBlockAction.dispose(); DebugUITools.removePartDebugContextListener(fParent.getSite(), fDebugContextListener); - fEvtHandler.dispose(); - fPresentationContext.dispose(); + fEvtHandler.dispose(); + fPresentationContext.dispose(); } - /* (non-Javadoc) - * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui. + * IWorkbenchPart, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { - + if (selection instanceof IStructuredSelection) { + Object obj = ((IStructuredSelection) selection).getFirstElement(); - if (selection instanceof IStructuredSelection) - { - Object obj = ((IStructuredSelection)selection).getFirstElement(); - - if (obj instanceof IMemoryBlock) - { + if (obj instanceof IMemoryBlock) { // if the selection event comes from this view - if (part == fParent) - { - // do not change selection if the selection is already correct + if (part == fParent) { + // do not change selection if the selection is already + // correct ISelection treeSel = fTreeViewer.getSelection(); - if (treeSel instanceof IStructuredSelection) - { - if (((IStructuredSelection)treeSel).getFirstElement() == obj) + if (treeSel instanceof IStructuredSelection) { + if (((IStructuredSelection) treeSel).getFirstElement() == obj) { return; + } } - // remove itself as selection listener when handling selection changed event + // remove itself as selection listener when handling + // selection changed event removeSelctionListener(this); fTreeViewer.setSelection(selection); - // remove itself as selection listener when handling selection changed event + // remove itself as selection listener when handling + // selection changed event addSelectionListener(this); } } } - - } + } - - public String getId() - { + @Override + public String getId() { return fPaneId; } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#getActions() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#getActions() */ + @Override public IAction[] getActions() { - - if (fAddMemoryBlockAction == null) - fAddMemoryBlockAction = new RetargetAddMemoryBlockAction((IMemoryRenderingSite)fParent); - - if (fRemoveMemoryBlockAction == null) - { + + if (fAddMemoryBlockAction == null) { + fAddMemoryBlockAction = new RetargetAddMemoryBlockAction((IMemoryRenderingSite) fParent); + } + + if (fRemoveMemoryBlockAction == null) { fRemoveMemoryBlockAction = new TreeViewerRemoveMemoryBlocksAction(); } - - if (fRemoveAllMemoryBlocksAction == null) - { + + if (fRemoveAllMemoryBlocksAction == null) { fRemoveAllMemoryBlocksAction = new TreeViewerRemoveAllMemoryBlocksAction(); } - + updateActionsEnablement(); - - return new IAction[]{fAddMemoryBlockAction, fRemoveMemoryBlockAction, fRemoveAllMemoryBlocksAction}; + + return new IAction[] { + fAddMemoryBlockAction, fRemoveMemoryBlockAction, + fRemoveAllMemoryBlocksAction }; } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#addSelectionListener(org.eclipse.jface.viewers.ISelectionChangedListener) + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane# + * addSelectionListener(org.eclipse.jface.viewers.ISelectionChangedListener) */ - public void addSelectionListener(ISelectionChangedListener listener) - { - if (fSelectionProvider == null) + @Override + public void addSelectionListener(ISelectionChangedListener listener) { + if (fSelectionProvider == null) { fSelectionProvider = new ViewPaneSelectionProvider(); - + } + fSelectionProvider.addSelectionChangedListener(listener); } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#removeSelctionListener(org.eclipse.jface.viewers.ISelectionChangedListener) + + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane# + * removeSelctionListener + * (org.eclipse.jface.viewers.ISelectionChangedListener) */ - public void removeSelctionListener(ISelectionChangedListener listener) - { - if (fSelectionProvider == null) + @Override + public void removeSelctionListener(ISelectionChangedListener listener) { + if (fSelectionProvider == null) { return; - + } + fSelectionProvider.removeSelectionChangedListener(listener); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#getSelectionProvider() + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane# + * getSelectionProvider() */ + @Override public ISelectionProvider getSelectionProvider() { return fSelectionProvider; } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#restoreViewPane() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#restoreViewPane + * () */ + @Override public void restoreViewPane() { updateRetrieval(); updateActionsEnablement(); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#getControl() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#getControl() */ + @Override public Control getControl() { return fTreeViewer.getControl(); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#setVisible(boolean) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#setVisible + * (boolean) */ + @Override public void setVisible(boolean visible) { - if (fVisible != visible) - { + if (fVisible != visible) { fVisible = visible; - - if(fVisible) - { + + if (fVisible) { fTreeViewer.refresh(); fTreeViewer.getControl().setFocus(); } } } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#isVisible() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewPane#isVisible() */ + @Override public boolean isVisible() { return fVisible; } - - private void updateActionsEnablement() - { - if (fRemoveMemoryBlockAction == null) + + private void updateActionsEnablement() { + if (fRemoveMemoryBlockAction == null) { return; - - if (fRemoveAllMemoryBlocksAction == null) + } + + if (fRemoveAllMemoryBlocksAction == null) { return; - - if (fRetrieval != null) - { + } + + if (fRetrieval != null) { IMemoryBlock[] memBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(fRetrieval); - if(memBlocks.length > 0) - { + if (memBlocks.length > 0) { fRemoveMemoryBlockAction.setEnabled(true); fRemoveAllMemoryBlocksAction.setEnabled(true); - } - else - { + } else { fRemoveMemoryBlockAction.setEnabled(false); - fRemoveAllMemoryBlocksAction.setEnabled(false); + fRemoveAllMemoryBlocksAction.setEnabled(false); } - } - else - { + } else { fRemoveMemoryBlockAction.setEnabled(false); fRemoveAllMemoryBlocksAction.setEnabled(false); } } + @Override public void selectionChanged(SelectionChangedEvent event) { // only handle selection changed from parent's selection provider - if (event.getSource() == fParent.getSite().getSelectionProvider()) - { + if (event.getSource() == fParent.getSite().getSelectionProvider()) { MemoryBlocksTreeViewPane.this.selectionChanged(fParent, event.getSelection()); } } - - public StructuredViewer getViewer() - { + + public StructuredViewer getViewer() { return fTreeViewer; } + @Override public IMemoryRenderingSite getMemoryRenderingSite() { - if (fParent instanceof IMemoryRenderingSite) - return (IMemoryRenderingSite)fParent; + if (fParent instanceof IMemoryRenderingSite) { + return (IMemoryRenderingSite) fParent; + } return null; } + @Override public void addMemoryRendering(IMemoryRendering rendering) { // do nothing } + @Override public void removeMemoryRendering(IMemoryRendering rendering) { // do nothing } + @Override public IMemoryRendering[] getRenderings() { return new IMemoryRendering[0]; } + @Override public IMemoryRendering getActiveRendering() { return null; } + @Override public String getLabel() { return fLabel; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryView.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryView.java index d6001e865..6fbf1344d 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryView.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryView.java @@ -77,34 +77,37 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { protected MemoryViewSelectionProvider fSelectionProvider; private MemoryViewPartListener fPartListener; - + private SashForm fSashForm; - private Hashtable fViewPanes = new Hashtable(); - private Hashtable fViewPaneControls = new Hashtable(); - private ArrayList fVisibleViewPanes = new ArrayList(); + private Hashtable<String, IMemoryViewPane> fViewPanes = new Hashtable<String, IMemoryViewPane>(); + private Hashtable<String, ViewForm> fViewPaneControls = new Hashtable<String, ViewForm>(); + private ArrayList<String> fVisibleViewPanes = new ArrayList<String>(); private boolean fVisible; - - private ArrayList fWeights = new ArrayList(); - - private static final String VISIBILITY_PREF = IDebugUIConstants.ID_MEMORY_VIEW+".viewPanesVisibility"; //$NON-NLS-1$ + + private ArrayList<Integer> fWeights = new ArrayList<Integer>(); + + private static final String VISIBILITY_PREF = IDebugUIConstants.ID_MEMORY_VIEW + ".viewPanesVisibility"; //$NON-NLS-1$ private static final String ID_MEMORY_VIEW_CONTEXT = "org.eclipse.debug.ui.memoryview"; //$NON-NLS-1$ private static final String ID_ADD_MEMORY_BLOCK_COMMAND = "org.eclipse.debug.ui.commands.addMemoryMonitor"; //$NON-NLS-1$ private static final String ID_TOGGLE_MEMORY_MONITORS_PANE_COMMAND = "org.eclipse.debug.ui.commands.toggleMemoryMonitorsPane"; //$NON-NLS-1$ private static final String ID_NEXT_MEMORY_BLOCK_COMMAND = "org.eclipse.debug.ui.commands.nextMemoryBlock"; //$NON-NLS-1$ private static final String ID_NEW_RENDERING_COMMAND = "org.eclipse.debug.ui.commands.newRendering"; //$NON-NLS-1$ private static final String ID_CLOSE_RENDERING_COMMAND = "org.eclipse.debug.ui.commands.closeRendering"; //$NON-NLS-1$ - - public static final String VIEW_PANE_ORIENTATION_PREF = IDebugUIConstants.ID_MEMORY_VIEW+".orientation"; //$NON-NLS-1$ + + public static final String VIEW_PANE_ORIENTATION_PREF = IDebugUIConstants.ID_MEMORY_VIEW + ".orientation"; //$NON-NLS-1$ public static final int HORIZONTAL_VIEW_ORIENTATION = 0; - public static final int VERTICAL_VIEW_ORIENTATION =1; + public static final int VERTICAL_VIEW_ORIENTATION = 1; + + private String[] defaultVisiblePaneIds = { + MemoryBlocksTreeViewPane.PANE_ID, + IDebugUIConstants.ID_RENDERING_VIEW_PANE_1 }; - private String[] defaultVisiblePaneIds ={MemoryBlocksTreeViewPane.PANE_ID, IDebugUIConstants.ID_RENDERING_VIEW_PANE_1}; - private MemoryBlocksTreeViewPane fMemBlkViewer; - + private MemoryViewSynchronizationService fSyncService; - - private boolean fPinMBDisplay = false; // pin memory block display, on by default + + private boolean fPinMBDisplay = false; // pin memory block display, on by + // default private static int fViewCnt = 0; private AbstractHandler fAddHandler; @@ -112,231 +115,253 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { private AbstractHandler fNextMemoryBlockHandler; private AbstractHandler fNewRenderingHandler; private AbstractHandler fCloseRenderingHandler; - + private ViewPaneOrientationAction[] fOrientationActions; private int fViewOrientation = HORIZONTAL_VIEW_ORIENTATION; - + private String fActivePaneId; - - class MemoryViewSelectionProvider implements ISelectionProvider, ISelectionChangedListener - { - ArrayList fListeners = new ArrayList(); - + + class MemoryViewSelectionProvider implements ISelectionProvider, ISelectionChangedListener { + ArrayList<ISelectionChangedListener> fListeners = new ArrayList<ISelectionChangedListener>(); + IStructuredSelection fSelections = new StructuredSelection(); - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener + * (org.eclipse.jface.viewers.ISelectionChangedListener) */ - public void addSelectionChangedListener(ISelectionChangedListener listener) - { + @Override + public void addSelectionChangedListener(ISelectionChangedListener listener) { if (!fListeners.contains(listener)) fListeners.add(listener); - + } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection() */ - public ISelection getSelection() - { + @Override + public ISelection getSelection() { return fSelections; } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + /* + * (non-Javadoc) + * @see org.eclipse.jface.viewers.ISelectionProvider# + * removeSelectionChangedListener + * (org.eclipse.jface.viewers.ISelectionChangedListener) */ - public void removeSelectionChangedListener(ISelectionChangedListener listener) - { + @Override + public void removeSelectionChangedListener(ISelectionChangedListener listener) { if (fListeners.contains(listener)) fListeners.remove(listener); - + } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse + * .jface.viewers.ISelection) */ - public void setSelection(ISelection selection) - { - if (selection instanceof IStructuredSelection) - { + @Override + public void setSelection(ISelection selection) { + if (selection instanceof IStructuredSelection) { boolean fireChanged = false; - + // only fire change event if the selection has really changed - if (fSelections.getFirstElement() != ((IStructuredSelection)selection).getFirstElement()) + if (fSelections.getFirstElement() != ((IStructuredSelection) selection).getFirstElement()) fireChanged = true; - fSelections = (IStructuredSelection)selection; - + fSelections = (IStructuredSelection) selection; + if (fireChanged) fireChanged(); } } - - public void fireChanged() - { + + public void fireChanged() { SelectionChangedEvent evt = new SelectionChangedEvent(this, getSelection()); - for (int i=0; i<fListeners.size(); i++) - { - ((ISelectionChangedListener)fListeners.get(i)).selectionChanged(evt); + for (int i = 0; i < fListeners.size(); i++) { + fListeners.get(i).selectionChanged(evt); } } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged + * (org.eclipse.jface.viewers.SelectionChangedEvent) */ + @Override public void selectionChanged(SelectionChangedEvent event) { ISelection viewPaneSelection = event.getSelection(); - - if (viewPaneSelection instanceof IStructuredSelection) - { - Object selected = ((IStructuredSelection)viewPaneSelection).getFirstElement(); - - if (selected != null) - { - StructuredSelection strucSelection = new StructuredSelection(new Object[]{selected}); + + if (viewPaneSelection instanceof IStructuredSelection) { + Object selected = ((IStructuredSelection) viewPaneSelection).getFirstElement(); + + if (selected != null) { + StructuredSelection strucSelection = new StructuredSelection(new Object[] { selected }); setSelection(strucSelection); - } - else - { + } else { setSelection(viewPaneSelection); } } } } - - class MemoryViewPartListener implements IPartListener2 - { + + class MemoryViewPartListener implements IPartListener2 { IMemoryRenderingSite fView = null; - - public MemoryViewPartListener(IMemoryRenderingSite view) - { + + public MemoryViewPartListener(IMemoryRenderingSite view) { fView = view; } - /* (non-Javadoc) - * @see org.eclipse.ui.IPartListener2#partActivated(org.eclipse.ui.IWorkbenchPartReference) + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPartListener2#partActivated(org.eclipse.ui. + * IWorkbenchPartReference) */ + @Override public void partActivated(IWorkbenchPartReference ref) { } - /* (non-Javadoc) - * @see org.eclipse.ui.IPartListener2#partBroughtToTop(org.eclipse.ui.IWorkbenchPartReference) + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPartListener2#partBroughtToTop(org.eclipse.ui. + * IWorkbenchPartReference) */ + @Override public void partBroughtToTop(IWorkbenchPartReference ref) { } - /* (non-Javadoc) - * @see org.eclipse.ui.IPartListener2#partClosed(org.eclipse.ui.IWorkbenchPartReference) + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPartListener2#partClosed(org.eclipse.ui. + * IWorkbenchPartReference) */ + @Override public void partClosed(IWorkbenchPartReference ref) { } - /* (non-Javadoc) - * @see org.eclipse.ui.IPartListener2#partDeactivated(org.eclipse.ui.IWorkbenchPartReference) + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPartListener2#partDeactivated(org.eclipse.ui. + * IWorkbenchPartReference) */ + @Override public void partDeactivated(IWorkbenchPartReference ref) { } - /* (non-Javadoc) - * @see org.eclipse.ui.IPartListener2#partHidden(org.eclipse.ui.IWorkbenchPartReference) + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPartListener2#partHidden(org.eclipse.ui. + * IWorkbenchPartReference) */ + @Override public void partHidden(IWorkbenchPartReference ref) { - + IWorkbenchPart part = ref.getPart(false); - - if (part == fView) - { + + if (part == fView) { setVisible(false); } } - /* (non-Javadoc) - * @see org.eclipse.ui.IPartListener2#partVisible(org.eclipse.ui.IWorkbenchPartReference) + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPartListener2#partVisible(org.eclipse.ui. + * IWorkbenchPartReference) */ + @Override public void partVisible(IWorkbenchPartReference ref) { IWorkbenchPart part = ref.getPart(false); - - if (part == fView) - { + + if (part == fView) { setVisible(true); restoreView(); } } - /* (non-Javadoc) - * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui.IWorkbenchPartReference) + /* + * (non-Javadoc) + * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui. + * IWorkbenchPartReference) */ + @Override public void partInputChanged(IWorkbenchPartReference ref) { } - public void partOpened(IWorkbenchPartReference ref) - { + @Override + public void partOpened(IWorkbenchPartReference ref) { } } - + + @Override public void init(IViewSite site) throws PartInitException { super.init(site); - - fViewCnt ++; + + fViewCnt++; String secondaryId = site.getSecondaryId(); if (secondaryId != null) MemoryViewIdRegistry.registerView(secondaryId); - + // only do this the first time // not sure if there is a bug in the UI... if the view is // not a primary view and if it's hidden, the view is not // init and created until it becomes visible. - if (fViewCnt == 1) - { + if (fViewCnt == 1) { // also try to find other views and register - if (DebugUIPlugin.getActiveWorkbenchWindow() != null && - DebugUIPlugin.getActiveWorkbenchWindow().getActivePage() != null) - { + if (DebugUIPlugin.getActiveWorkbenchWindow() != null && DebugUIPlugin.getActiveWorkbenchWindow().getActivePage() != null) { IViewReference references[] = DebugUIPlugin.getActiveWorkbenchWindow().getActivePage().getViewReferences(); - for (int i=0; i<references.length; i++) - { - if (references[i].getSecondaryId() != null) - { + for (int i = 0; i < references.length; i++) { + if (references[i].getSecondaryId() != null) { MemoryViewIdRegistry.registerView(references[i].getSecondaryId()); } } } } - + fSyncService = new MemoryViewSynchronizationService(); } - - /* (non-Javadoc) - * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) + + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets + * .Composite) */ + @Override public void createPartControl(Composite parent) { fSashForm = new SashForm(parent, SWT.HORIZONTAL); - + fSelectionProvider = new MemoryViewSelectionProvider(); - + // set up selection provider and listeners getSite().setSelectionProvider(fSelectionProvider); createMemoryBlocksTreeViewPane(fSashForm); createRenderingViewPane(IDebugUIConstants.ID_RENDERING_VIEW_PANE_1); createRenderingViewPane(IDebugUIConstants.ID_RENDERING_VIEW_PANE_2); - + setVisible(true); - + // set up weights in sashform - Integer[] weights = (Integer[])fWeights.toArray(new Integer[fWeights.size()]); + Integer[] weights = fWeights.toArray(new Integer[fWeights.size()]); int[] intWeights = new int[weights.length]; - for (int i=0; i<weights.length; i++) - { + for (int i = 0; i < weights.length; i++) { intWeights[i] = weights[i].intValue(); } fSashForm.setWeights(intWeights); loadViewPanesVisibility(); - + createOrientationActions(); loadOrientation(); - + fPartListener = new MemoryViewPartListener(this); getSite().getPage().addPartListener(fPartListener); activateHandlers(); @@ -344,45 +369,45 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { restoreView(); } - - public void activateHandlers() { - ICommandService commandSupport = (ICommandService)getSite().getService(ICommandService.class); - IHandlerService handlerService = (IHandlerService)getSite().getService(IHandlerService.class); - IContextService contextSupport = (IContextService)getSite().getService(IContextService.class); - - if (commandSupport != null && handlerService != null && contextSupport != null) - { + public void activateHandlers() { + ICommandService commandSupport = (ICommandService) getSite().getService(ICommandService.class); + IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class); + IContextService contextSupport = (IContextService) getSite().getService(IContextService.class); + + if (commandSupport != null && handlerService != null && contextSupport != null) { contextSupport.activateContext(ID_MEMORY_VIEW_CONTEXT); - + fAddHandler = new AbstractHandler() { - public Object execute(ExecutionEvent event) throws ExecutionException { - IAdaptable context = DebugUITools.getPartDebugContext(getSite()); - if (context != null && MemoryViewUtil.isValidSelection(new StructuredSelection(context))) - { - RetargetAddMemoryBlockAction action = new RetargetAddMemoryBlockAction(MemoryView.this); - action.run(); - action.dispose(); - } - return null; - }}; - handlerService.activateHandler(ID_ADD_MEMORY_BLOCK_COMMAND, fAddHandler); - - fToggleMonitorsHandler = new AbstractHandler() { - public Object execute(ExecutionEvent event) throws ExecutionException { - ToggleMemoryMonitorsAction action = new ToggleMemoryMonitorsAction(); - action.init(MemoryView.this); + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + IAdaptable context = DebugUITools.getPartDebugContext(getSite()); + if (context != null && MemoryViewUtil.isValidSelection(new StructuredSelection(context))) { + RetargetAddMemoryBlockAction action = new RetargetAddMemoryBlockAction(MemoryView.this); action.run(); action.dispose(); - return null; } - }; - + return null; + } + }; + handlerService.activateHandler(ID_ADD_MEMORY_BLOCK_COMMAND, fAddHandler); + + fToggleMonitorsHandler = new AbstractHandler() { + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + ToggleMemoryMonitorsAction action = new ToggleMemoryMonitorsAction(); + action.init(MemoryView.this); + action.run(); + action.dispose(); + return null; + } + }; + handlerService.activateHandler(ID_TOGGLE_MEMORY_MONITORS_PANE_COMMAND, fToggleMonitorsHandler); - + fNextMemoryBlockHandler = new AbstractHandler() { - public Object execute(ExecutionEvent event) - throws ExecutionException { + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { SwitchMemoryBlockAction action = new SwitchMemoryBlockAction(); action.init(MemoryView.this); action.run(); @@ -391,22 +416,20 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { } }; handlerService.activateHandler(ID_NEXT_MEMORY_BLOCK_COMMAND, fNextMemoryBlockHandler); - + fCloseRenderingHandler = new AbstractHandler() { - public Object execute(ExecutionEvent event) - throws ExecutionException { - + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + IMemoryRenderingContainer container = getContainer(fActivePaneId); - if (container != null) - { + if (container != null) { if (container instanceof RenderingViewPane) { if (!((RenderingViewPane) container).canRemoveRendering()) return null; } IMemoryRendering activeRendering = container.getActiveRendering(); - if (activeRendering != null) - { + if (activeRendering != null) { container.removeMemoryRendering(activeRendering); } } @@ -415,17 +438,16 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { } }; handlerService.activateHandler(ID_CLOSE_RENDERING_COMMAND, fCloseRenderingHandler); - + fNewRenderingHandler = new AbstractHandler() { - public Object execute(ExecutionEvent event) - throws ExecutionException { + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + + IMemoryRenderingContainer container = getContainer(fActivePaneId); - IMemoryRenderingContainer container = getContainer(fActivePaneId); - - if (container != null && container instanceof RenderingViewPane) - { - RenderingViewPane pane = (RenderingViewPane)container; + if (container != null && container instanceof RenderingViewPane) { + RenderingViewPane pane = (RenderingViewPane) container; if (pane.canAddRendering()) pane.showCreateRenderingTab(); } @@ -434,46 +456,47 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { }; handlerService.activateHandler(ID_NEW_RENDERING_COMMAND, fNewRenderingHandler); } - } - + } + /** * */ private void createMemoryBlocksTreeViewPane(Composite parent) { - + fMemBlkViewer = new MemoryBlocksTreeViewPane(this); fViewPanes.put(MemoryBlocksTreeViewPane.PANE_ID, fMemBlkViewer); ViewForm viewerViewForm = new ViewForm(parent, SWT.NONE); PlatformUI.getWorkbench().getHelpSystem().setHelp(viewerViewForm, IDebugUIConstants.PLUGIN_ID + ".MemoryView_context"); //$NON-NLS-1$ fViewPaneControls.put(MemoryBlocksTreeViewPane.PANE_ID, viewerViewForm); fWeights.add(new Integer(15)); - + fMemBlkViewer.addSelectionListener(fSelectionProvider); - + Control viewerControl = fMemBlkViewer.createViewPane(viewerViewForm, MemoryBlocksTreeViewPane.PANE_ID, DebugUIMessages.MemoryView_Memory_monitors); viewerViewForm.setContent(viewerControl); - + ISelection selection = fMemBlkViewer.getSelectionProvider().getSelection(); if (selection != null) - fSelectionProvider.setSelection(selection); + fSelectionProvider.setSelection(selection); - ToolBarManager viewerToolBarMgr = new ToolBarManager(SWT.FLAT); + ToolBarManager viewerToolBarMgr = new ToolBarManager(SWT.FLAT); IAction[] actions = fMemBlkViewer.getActions(); - for (int i=0; i<actions.length; i++) - { + for (int i = 0; i < actions.length; i++) { viewerToolBarMgr.add(actions[i]); } ToolBar viewerToolbar = viewerToolBarMgr.createControl(viewerViewForm); viewerViewForm.setTopRight(viewerToolbar); - + Label viewerLabel = new Label(viewerViewForm, SWT.WRAP); - viewerLabel.setText(DebugUIMessages.MemoryView_Memory_monitors); + viewerLabel.setText(DebugUIMessages.MemoryView_Memory_monitors); viewerViewForm.setTopLeft(viewerLabel); - + fMemBlkViewer.getControl().addFocusListener(new FocusAdapter() { + @Override public void focusGained(FocusEvent e) { fActivePaneId = fMemBlkViewer.getId(); - }}); + } + }); } /** @@ -482,11 +505,14 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { */ private Listener createDeactivateListener(final IMemoryViewPane viewPane) { Listener deactivateListener = new Listener() { - private String id=viewPane.getId(); + private String id = viewPane.getId(); + + @Override public void handleEvent(Event event) { if (fActivePaneId.equals(id)) viewPane.removeSelctionListener(fSelectionProvider); - }}; + } + }; return deactivateListener; } @@ -495,12 +521,15 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { */ private Listener createActivateListener(final IMemoryViewPane viewPane) { Listener activateListener = new Listener() { - private String id=viewPane.getId(); + private String id = viewPane.getId(); + + @Override public void handleEvent(Event event) { fActivePaneId = id; viewPane.addSelectionListener(fSelectionProvider); fSelectionProvider.setSelection(viewPane.getSelectionProvider().getSelection()); - }}; + } + }; return activateListener; } @@ -508,167 +537,174 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { * */ public void createRenderingViewPane(final String paneId) { - final RenderingViewPane renderingPane = new RenderingViewPane(this); + final RenderingViewPane renderingPane = new RenderingViewPane(this); fViewPanes.put(paneId, renderingPane); ViewForm renderingViewForm = new ViewForm(fSashForm, SWT.NONE); fViewPaneControls.put(paneId, renderingViewForm); fWeights.add(new Integer(40)); - + Control renderingControl = renderingPane.createViewPane(renderingViewForm, paneId, DebugUIMessages.MemoryView_Memory_renderings, true, true); PlatformUI.getWorkbench().getHelpSystem().setHelp(renderingControl, IDebugUIConstants.PLUGIN_ID + ".MemoryView_context"); //$NON-NLS-1$ renderingViewForm.setContent(renderingControl); - + Listener renderingActivateListener = createActivateListener(renderingPane); renderingControl.addListener(SWT.Activate, renderingActivateListener); - + Listener renderingDeactivateListener = createDeactivateListener(renderingPane); renderingControl.addListener(SWT.Deactivate, renderingDeactivateListener); } - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#setFocus() */ + @Override public void setFocus() { if (fActivePaneId == null) fActivePaneId = fMemBlkViewer.getId(); - + IMemoryViewPane pane = getViewPane(fActivePaneId); pane.getControl().setFocus(); } - + + @Override public void dispose() { - getSite().getPage().removePartListener(fPartListener); - - Enumeration enumeration = fViewPanes.elements(); - while (enumeration.hasMoreElements()) - { + getSite().getPage().removePartListener(fPartListener); + + Enumeration<IMemoryViewPane> enumeration = fViewPanes.elements(); + while (enumeration.hasMoreElements()) { Object element = enumeration.nextElement(); - if (element instanceof IMemoryViewPane) - { - ((IMemoryViewPane)element).dispose(); + if (element instanceof IMemoryViewPane) { + ((IMemoryViewPane) element).dispose(); } } - + fViewPaneControls.clear(); - + IViewSite viewSite = getViewSite(); String secondaryId = viewSite.getSecondaryId(); if (secondaryId != null) MemoryViewIdRegistry.deregisterView(secondaryId); - + fSyncService.shutdown(); - + if (fAddHandler != null) fAddHandler.dispose(); - + if (fToggleMonitorsHandler != null) fToggleMonitorsHandler.dispose(); - + if (fNextMemoryBlockHandler != null) fNextMemoryBlockHandler.dispose(); - + super.dispose(); } - - private void setVisible(boolean visible) - { + + private void setVisible(boolean visible) { IMemoryViewPane[] viewPanes = getViewPanes(); - - for (int i=0; i<viewPanes.length; i++) - { + + for (int i = 0; i < viewPanes.length; i++) { // if currently visible, take view pane's visibility into account // else force view pane to be visible if it is listed in // "visible view panes" array list. if (fVisible) viewPanes[i].setVisible(visible && viewPanes[i].isVisible()); - else - { + else { if (isViewPaneVisible(viewPanes[i].getId())) viewPanes[i].setVisible(visible); - } + } } - + fVisible = visible; } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#getViewPane(java.lang.String) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#getViewPane + * (java.lang.String) */ public IMemoryViewPane getViewPane(String paneId) { - return (IMemoryViewPane)fViewPanes.get(paneId); - } + return fViewPanes.get(paneId); + } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#getViewPanes() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#getViewPanes + * () */ public IMemoryViewPane[] getViewPanes() { IMemoryViewPane[] viewPanes = new IMemoryViewPane[fViewPanes.size()]; - Enumeration enumeration = fViewPanes.elements(); - int i=0; - while (enumeration.hasMoreElements()) - { - viewPanes[i] = (IMemoryViewPane)enumeration.nextElement(); + Enumeration<IMemoryViewPane> enumeration = fViewPanes.elements(); + int i = 0; + while (enumeration.hasMoreElements()) { + viewPanes[i] = enumeration.nextElement(); i++; } - + return viewPanes; } - + /** - * Restore each view pane from the memory view based on current - * debug selection + * Restore each view pane from the memory view based on current debug + * selection */ private void restoreView() { IMemoryViewPane[] viewPanes = getViewPanes(); - for (int i=0; i<viewPanes.length; i++) - { + for (int i = 0; i < viewPanes.length; i++) { viewPanes[i].restoreViewPane(); } } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#showViewPane(boolean, java.lang.String) + + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#showViewPane + * (boolean, java.lang.String) */ public void showViewPane(boolean show, String paneId) { - - Control viewPaneControl = (Control)fViewPaneControls.get(paneId); - - if (viewPaneControl != null) - { + + Control viewPaneControl = fViewPaneControls.get(paneId); + + if (viewPaneControl != null) { Control children[] = fSashForm.getChildren(); - - for (int i=0; i<children.length; i++) - { - if (children[i] == viewPaneControl) - { + + for (int i = 0; i < children.length; i++) { + if (children[i] == viewPaneControl) { children[i].setVisible(show); - IMemoryViewPane viewPane = (IMemoryViewPane)fViewPanes.get(paneId); + IMemoryViewPane viewPane = fViewPanes.get(paneId); if (viewPane != null) viewPane.setVisible(show); } } fSashForm.layout(); } - + storeViewPaneVisibility(); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#isViewPaneVisible(java.lang.String) + + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView# + * isViewPaneVisible(java.lang.String) */ public boolean isViewPaneVisible(String paneId) { return fVisibleViewPanes.contains(paneId); } - - private void storeViewPaneVisibility() { + + private void storeViewPaneVisibility() { fVisibleViewPanes.clear(); - StringBuffer visibleViewPanes= new StringBuffer(); - - Enumeration enumeration = fViewPaneControls.keys(); - + StringBuffer visibleViewPanes = new StringBuffer(); + + Enumeration<String> enumeration = fViewPaneControls.keys(); + while (enumeration.hasMoreElements()) { - String paneId = (String)enumeration.nextElement(); - - Control control = (Control)fViewPaneControls.get(paneId); + String paneId = enumeration.nextElement(); + + Control control = fViewPaneControls.get(paneId); if (control.isVisible()) { visibleViewPanes.append(paneId); visibleViewPanes.append(","); //$NON-NLS-1$ @@ -676,7 +712,7 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { } } IEclipsePreferences node = InstanceScope.INSTANCE.getNode(DebugUIPlugin.getUniqueIdentifier()); - if(node != null) { + if (node != null) { try { node.put(getVisibilityPrefId(), visibleViewPanes.toString()); node.flush(); @@ -685,66 +721,53 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { } } } - + private void loadViewPanesVisibility() { - String visiblePanes = Platform.getPreferencesService().getString( - DebugUIPlugin.getUniqueIdentifier(), - getVisibilityPrefId(), - null, - null); - + String visiblePanes = Platform.getPreferencesService().getString(DebugUIPlugin.getUniqueIdentifier(), getVisibilityPrefId(), null, null); + if (visiblePanes != null && visiblePanes.length() > 0) { StringTokenizer tokenizer = new StringTokenizer(visiblePanes, ","); //$NON-NLS-1$ - while (tokenizer.hasMoreTokens()) - { + while (tokenizer.hasMoreTokens()) { String paneId = tokenizer.nextToken(); fVisibleViewPanes.add(paneId); } - } - else { - for (int i=0 ;i<defaultVisiblePaneIds.length; i++) - { + } else { + for (int i = 0; i < defaultVisiblePaneIds.length; i++) { fVisibleViewPanes.add(defaultVisiblePaneIds[i]); } } - - Enumeration enumeration = fViewPaneControls.keys(); - while (enumeration.hasMoreElements()) - { - String paneId = (String)enumeration.nextElement(); + + Enumeration<String> enumeration = fViewPaneControls.keys(); + while (enumeration.hasMoreElements()) { + String paneId = enumeration.nextElement(); boolean visible = false; - if(fVisibleViewPanes.contains(paneId)) + if (fVisibleViewPanes.contains(paneId)) visible = true; - - Control control = (Control)fViewPaneControls.get(paneId); + + Control control = fViewPaneControls.get(paneId); control.setVisible(visible); - - IMemoryViewPane viewPane = (IMemoryViewPane)fViewPanes.get(paneId); + + IMemoryViewPane viewPane = fViewPanes.get(paneId); viewPane.setVisible(visible); } - + fSashForm.layout(); } - + private void loadOrientation() { - fViewOrientation = Platform.getPreferencesService().getInt( - DebugUIPlugin.getUniqueIdentifier(), - getOrientationPrefId(), - HORIZONTAL_VIEW_ORIENTATION, - null); - - for (int i=0; i<fOrientationActions.length; i++) { - if (fOrientationActions[i].getOrientation() == fViewOrientation) - { + fViewOrientation = Platform.getPreferencesService().getInt(DebugUIPlugin.getUniqueIdentifier(), getOrientationPrefId(), HORIZONTAL_VIEW_ORIENTATION, null); + + for (int i = 0; i < fOrientationActions.length; i++) { + if (fOrientationActions[i].getOrientation() == fViewOrientation) { fOrientationActions[i].run(); } } updateOrientationActions(); } - + private void saveOrientation() { IEclipsePreferences node = InstanceScope.INSTANCE.getNode(DebugUIPlugin.getUniqueIdentifier()); - if(node != null) { + if (node != null) { try { node.putInt(getOrientationPrefId(), fViewOrientation); node.flush(); @@ -753,97 +776,100 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { } } } - - private void updateOrientationActions() - { - for (int i=0; i<fOrientationActions.length; i++) - { - if (fOrientationActions[i].getOrientation() == fViewOrientation) - { + + private void updateOrientationActions() { + for (int i = 0; i < fOrientationActions.length; i++) { + if (fOrientationActions[i].getOrientation() == fViewOrientation) { fOrientationActions[i].setChecked(true); - } - else - { + } else { fOrientationActions[i].setChecked(false); } - + } } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSite#getSynchronizationService() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.memory.IMemoryRenderingSite#getSynchronizationService + * () */ + @Override public IMemoryRenderingSynchronizationService getSynchronizationService() { return fSyncService; } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSite#getMemoryRenderingContainers() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.memory.IMemoryRenderingSite#getMemoryRenderingContainers + * () */ + @Override public IMemoryRenderingContainer[] getMemoryRenderingContainers() { - Enumeration enumeration = fViewPanes.elements(); - ArrayList containers = new ArrayList(); - while (enumeration.hasMoreElements()){ + Enumeration<IMemoryViewPane> enumeration = fViewPanes.elements(); + ArrayList<Object> containers = new ArrayList<Object>(); + while (enumeration.hasMoreElements()) { Object obj = enumeration.nextElement(); if (obj instanceof IMemoryRenderingContainer) containers.add(obj); } - - return (IMemoryRenderingContainer[])containers.toArray(new IMemoryRenderingContainer[containers.size()]); + + return containers.toArray(new IMemoryRenderingContainer[containers.size()]); } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSite#getContainer(java.lang.String) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.memory.IMemoryRenderingSite#getContainer(java.lang + * .String) */ + @Override public IMemoryRenderingContainer getContainer(String id) { - Object viewPane = fViewPanes.get(id); - + Object viewPane = fViewPanes.get(id); + if (viewPane instanceof IMemoryRenderingContainer) - return (IMemoryRenderingContainer)viewPane; - + return (IMemoryRenderingContainer) viewPane; + return null; } public boolean isPinMBDisplay() { return fPinMBDisplay; } - public void setPinMBDisplay(boolean pinMBDisplay) { fPinMBDisplay = pinMBDisplay; } - - private String getVisibilityPrefId() - { + + private String getVisibilityPrefId() { IViewSite vs = getViewSite(); String viewId = vs.getSecondaryId(); - + if (viewId != null) return VISIBILITY_PREF + "." + viewId; //$NON-NLS-1$ return VISIBILITY_PREF; } - - private String getOrientationPrefId() - { + + private String getOrientationPrefId() { IViewSite vs = getViewSite(); String viewId = vs.getSecondaryId(); - + if (viewId != null) return VIEW_PANE_ORIENTATION_PREF + "." + viewId; //$NON-NLS-1$ return VIEW_PANE_ORIENTATION_PREF; } - - private void createOrientationActions() - { + + private void createOrientationActions() { IActionBars actionBars = getViewSite().getActionBars(); IMenuManager viewMenu = actionBars.getMenuManager(); - + fOrientationActions = new ViewPaneOrientationAction[2]; fOrientationActions[0] = new ViewPaneOrientationAction(this, HORIZONTAL_VIEW_ORIENTATION); fOrientationActions[1] = new ViewPaneOrientationAction(this, VERTICAL_VIEW_ORIENTATION); - + viewMenu.add(new Separator()); MenuManager layoutSubMenu = new MenuManager(VariablesViewMessages.VariablesView_40); layoutSubMenu.add(fOrientationActions[0]); @@ -851,24 +877,23 @@ public class MemoryView extends ViewPart implements IMemoryRenderingSite2 { viewMenu.add(layoutSubMenu); viewMenu.add(new Separator()); } - - public void setViewPanesOrientation(int orientation) - { + + public void setViewPanesOrientation(int orientation) { fViewOrientation = orientation; if (fViewOrientation == VERTICAL_VIEW_ORIENTATION) fSashForm.setOrientation(SWT.VERTICAL); else fSashForm.setOrientation(SWT.HORIZONTAL); - + saveOrientation(); updateOrientationActions(); } - - public int getViewPanesOrientation() - { + + public int getViewPanesOrientation() { return fViewOrientation; } + @Override public void setContainerVisible(String id, boolean visible) { showViewPane(visible, id); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewIdRegistry.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewIdRegistry.java index f26a4901e..92c3d6686 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewIdRegistry.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewIdRegistry.java @@ -14,50 +14,43 @@ import java.util.ArrayList; /** * Class for managing the secondary ids for Memory View - * + * */ -public class MemoryViewIdRegistry{ - - private static ArrayList fgRegistry; - - public static void registerView(String secondaryId) - { - ArrayList registry = getRegistry(); - - if (!registry.contains(secondaryId)) - { +public class MemoryViewIdRegistry { + + private static ArrayList<String> fgRegistry; + + public static void registerView(String secondaryId) { + ArrayList<String> registry = getRegistry(); + + if (!registry.contains(secondaryId)) { registry.add(secondaryId); } } - - public static void deregisterView(String secondaryId) - { - ArrayList registry = getRegistry(); - - if (registry.contains(secondaryId)) - { + + public static void deregisterView(String secondaryId) { + ArrayList<String> registry = getRegistry(); + + if (registry.contains(secondaryId)) { registry.remove(secondaryId); } } - - public static String getUniqueSecondaryId(String viewId) - { + + public static String getUniqueSecondaryId(String viewId) { int cnt = 0; String id = viewId + "." + cnt; //$NON-NLS-1$ - ArrayList registry = getRegistry(); - while (registry.contains(id)) - { - cnt ++; + ArrayList<String> registry = getRegistry(); + while (registry.contains(id)) { + cnt++; id = viewId + "." + cnt; //$NON-NLS-1$ } return id; } - - private static ArrayList getRegistry() - { + + private static ArrayList<String> getRegistry() { if (fgRegistry == null) - fgRegistry = new ArrayList(); - + fgRegistry = new ArrayList<String>(); + return fgRegistry; } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewPrefAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewPrefAction.java index 9b54d9fc2..8980ef6f0 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewPrefAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewPrefAction.java @@ -24,37 +24,41 @@ import org.eclipse.ui.IViewPart; public class MemoryViewPrefAction implements IViewActionDelegate { + @Override public void init(IViewPart view) { } + @Override public void run(IAction action) { - + PreferenceManager prefManager = new PreferenceManager(); - + ResetMemoryBlockPreferencePage page = new ResetMemoryBlockPreferencePage(); - IPreferenceNode node = new PreferenceNode("org.eclipse.debug.ui.memory.resetMemoryBlock", page); //$NON-NLS-1$ + IPreferenceNode node = new PreferenceNode("org.eclipse.debug.ui.memory.resetMemoryBlock", page); //$NON-NLS-1$ prefManager.addToRoot(node); - + SetPaddedStringPreferencePage page2 = new SetPaddedStringPreferencePage(); - IPreferenceNode node2 = new PreferenceNode("org.eclipse.debug.ui.memory.setPaddedString", page2); //$NON-NLS-1$ + IPreferenceNode node2 = new PreferenceNode("org.eclipse.debug.ui.memory.setPaddedString", page2); //$NON-NLS-1$ prefManager.addToRoot(node2); CodePagesPreferencePage page3 = new CodePagesPreferencePage(); - IPreferenceNode node3 = new PreferenceNode("org.eclipse.debug.ui.memory.codePages", page3); //$NON-NLS-1$ + IPreferenceNode node3 = new PreferenceNode("org.eclipse.debug.ui.memory.codePages", page3); //$NON-NLS-1$ prefManager.addToRoot(node3); - + final PreferenceDialog dialog = new PreferenceDialog(DebugUIPlugin.getShell(), prefManager); BusyIndicator.showWhile(DebugUIPlugin.getStandardDisplay(), new Runnable() { + @Override public void run() { dialog.create(); dialog.open(); } - }); + }); } + @Override public void selectionChanged(IAction action, ISelection selection) { } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewSynchronizationService.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewSynchronizationService.java index c99109a02..4669b9a4a 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewSynchronizationService.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewSynchronizationService.java @@ -27,63 +27,59 @@ import org.eclipse.swt.widgets.Display; /** * Synchronization service for the memory view. + * * @since 3.1 */ -public class MemoryViewSynchronizationService implements - IMemoryRenderingSynchronizationService, IMemoryBlockListener, IPropertyChangeListener { +public class MemoryViewSynchronizationService implements IMemoryRenderingSynchronizationService, IMemoryBlockListener, IPropertyChangeListener { private static final int ENABLED = 0; private static final int ENABLING = 1; private static final int DISABLED = 2; - - private Hashtable fSynchronizeInfo; + + private Hashtable<IMemoryBlock, SynchronizeInfo> fSynchronizeInfo; private int fEnableState = ENABLED; - private Hashtable fPropertyListeners; - + private Hashtable<IPropertyChangeListener, PropertyListener> fPropertyListeners; + private IMemoryRendering fLastChangedRendering; private IMemoryRendering fSyncServiceProvider; private static final boolean DEBUG_SYNC_SERVICE = false; - - public MemoryViewSynchronizationService() - { - fSynchronizeInfo = new Hashtable(); - fPropertyListeners = new Hashtable(); + + public MemoryViewSynchronizationService() { + fSynchronizeInfo = new Hashtable<IMemoryBlock, SynchronizeInfo>(); + fPropertyListeners = new Hashtable<IPropertyChangeListener, PropertyListener>(); MemoryViewUtil.getMemoryBlockManager().addListener(this); } /** - * Wrapper for ISynchronizedMemoryBlockView - * Holds a list of property filters for the view. + * Wrapper for ISynchronizedMemoryBlockView Holds a list of property filters + * for the view. */ - class PropertyListener - { + class PropertyListener { IPropertyChangeListener fListener; String[] fFilters; - - public PropertyListener(IPropertyChangeListener listener, String[] properties) - { + + public PropertyListener(IPropertyChangeListener listener, String[] properties) { fListener = listener; - - if(properties != null) - { + + if (properties != null) { fFilters = properties; } } /** - * If the property matches one of the filters, the property - * is valid and the view should be notified about its change. + * If the property matches one of the filters, the property is valid and + * the view should be notified about its change. + * * @param property the property * @return if the property is specified in the filter */ - public boolean isValidProperty(String property){ - if (fFilters == null) + public boolean isValidProperty(String property) { + if (fFilters == null) { return true; - for (int i=0; i<fFilters.length; i++) - { - if (fFilters[i].equals(property)) - { + } + for (int i = 0; i < fFilters.length; i++) { + if (fFilters[i].equals(property)) { return true; } } @@ -91,11 +87,12 @@ public class MemoryViewSynchronizationService implements } /** - * Set property filters, indicating what property change events - * the listener is interested in. + * Set property filters, indicating what property change events the + * listener is interested in. + * * @param filters the property filters or <code>null</code> */ - public void setPropertyFilters(String[] filters){ + public void setPropertyFilters(String[] filters) { fFilters = filters; } @@ -106,241 +103,257 @@ public class MemoryViewSynchronizationService implements return fListener; } } - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.IMemoryBlockViewSynchronizer#getSynchronizedProperty(org.eclipse.debug.ui.ISynchronizedMemoryBlockView, java.lang.String) + + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.IMemoryBlockViewSynchronizer#getSynchronizedProperty + * (org.eclipse.debug.ui.ISynchronizedMemoryBlockView, java.lang.String) */ - public Object getSynchronizedProperty(IMemoryBlock memoryBlock, String propertyId) - { - SynchronizeInfo info = (SynchronizeInfo)fSynchronizeInfo.get(memoryBlock); - - if (info != null) - { + public Object getSynchronizedProperty(IMemoryBlock memoryBlock, String propertyId) { + SynchronizeInfo info = fSynchronizeInfo.get(memoryBlock); + + if (info != null) { Object value = info.getProperty(propertyId); return value; } - + return null; } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.IMemoryBlockListener#MemoryBlockAdded(org.eclipse.debug.core.model.IMemoryBlock) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.IMemoryBlockListener#MemoryBlockAdded(org.eclipse + * .debug.core.model.IMemoryBlock) */ + @Override public void memoryBlocksAdded(IMemoryBlock[] memoryBlocks) { // do nothing when a memory block is added // create a synchronize info object when there is a fView // tab registered to be synchronized. - - + } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.IMemoryBlockListener#MemoryBlockRemoved(org.eclipse.debug.core.model.IMemoryBlock) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.IMemoryBlockListener#MemoryBlockRemoved(org.eclipse + * .debug.core.model.IMemoryBlock) */ + @Override public void memoryBlocksRemoved(IMemoryBlock[] memoryBlocks) { - + // Sync info can be null if the service is already shut down - if (fSynchronizeInfo == null) + if (fSynchronizeInfo == null) { return; - - for (int i=0; i<memoryBlocks.length; i++) - { + } + + for (int i = 0; i < memoryBlocks.length; i++) { IMemoryBlock memory = memoryBlocks[i]; - - if (fLastChangedRendering != null && fLastChangedRendering.getMemoryBlock() == memory) + + if (fLastChangedRendering != null && fLastChangedRendering.getMemoryBlock() == memory) { fLastChangedRendering = null; - - if (fSyncServiceProvider != null && fSyncServiceProvider.getMemoryBlock() == memory) + } + + if (fSyncServiceProvider != null && fSyncServiceProvider.getMemoryBlock() == memory) { fSyncServiceProvider = null; - + } + // delete the info object and remove it from fSynchronizeInfo // when the memory block is deleted - SynchronizeInfo info = (SynchronizeInfo)fSynchronizeInfo.get(memory); - - if (info != null) - { + SynchronizeInfo info = fSynchronizeInfo.get(memory); + + if (info != null) { info.delete(); fSynchronizeInfo.remove(memory); } } } - + /** * Clean up when the plug-in is shutdown */ - public void shutdown() - { - if (fSynchronizeInfo != null) - { - Enumeration enumeration = fSynchronizeInfo.elements(); - + public void shutdown() { + if (fSynchronizeInfo != null) { + Enumeration<SynchronizeInfo> enumeration = fSynchronizeInfo.elements(); + // clean up all synchronize info objects - while (enumeration.hasMoreElements()){ - SynchronizeInfo info = (SynchronizeInfo)enumeration.nextElement(); + while (enumeration.hasMoreElements()) { + SynchronizeInfo info = enumeration.nextElement(); info.delete(); } - + fSynchronizeInfo.clear(); fSynchronizeInfo = null; } MemoryViewUtil.getMemoryBlockManager().removeListener(this); } - - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener, java.lang.String[]) + + /* + * (non-Javadoc) + * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService# + * addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener, + * java.lang.String[]) */ + @Override public void addPropertyChangeListener(IPropertyChangeListener listener, String[] properties) { fPropertyListeners.put(listener, new PropertyListener(listener, properties)); } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener) + /* + * (non-Javadoc) + * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService# + * removePropertyChangeListener + * (org.eclipse.jface.util.IPropertyChangeListener) */ + @Override public void removePropertyChangeListener(IPropertyChangeListener listener) { - if (fPropertyListeners.containsKey(listener)) - { + if (fPropertyListeners.containsKey(listener)) { fPropertyListeners.remove(listener); } } - + /** * Fire property change events + * * @param evt the event to fire */ - public void firePropertyChanged(final PropertyChangeEvent evt) - { + public void firePropertyChanged(final PropertyChangeEvent evt) { // do not fire property changed event if the synchronization // service is disabled - if (fEnableState == DISABLED) + if (fEnableState == DISABLED) { return; - + } + // Make sure the synchronizer does not swallow any events // Values of the properties are updated in the syncrhonizer immediately. // Change events are queued up on the UI Thread. - Display.getDefault().syncExec(new Runnable() - { - public void run() - { - if (fSynchronizeInfo == null) + Display.getDefault().syncExec(new Runnable() { + @Override + public void run() { + if (fSynchronizeInfo == null) { return; - - IMemoryRendering rendering = (IMemoryRendering)evt.getSource(); + } + + IMemoryRendering rendering = (IMemoryRendering) evt.getSource(); String propertyId = evt.getProperty(); - - SynchronizeInfo info = (SynchronizeInfo)fSynchronizeInfo.get(rendering.getMemoryBlock()); - if (info != null) - { + + SynchronizeInfo info = fSynchronizeInfo.get(rendering.getMemoryBlock()); + if (info != null) { Object value = info.getProperty(propertyId); - if (value != null) - { - Enumeration enumeration = fPropertyListeners.elements(); - - while(enumeration.hasMoreElements()) - { - PropertyListener listener = (PropertyListener)enumeration.nextElement(); - + if (value != null) { + Enumeration<PropertyListener> enumeration = fPropertyListeners.elements(); + + while (enumeration.hasMoreElements()) { + PropertyListener listener = enumeration.nextElement(); + IPropertyChangeListener origListener = listener.getListener(); - - // if it's a valid property - valid means that it's listed in the property filters - if (listener.isValidProperty(propertyId)){ + + // if it's a valid property - valid means that it's + // listed in the property filters + if (listener.isValidProperty(propertyId)) { PropertyChangeNotifier notifier = new PropertyChangeNotifier(origListener, evt); - SafeRunner.run(notifier); + SafeRunner.run(notifier); } } } } } }); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService#getProperty(org.eclipse.debug.core.model.IMemoryBlock, java.lang.String) + } + + /* + * (non-Javadoc) + * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService# + * getProperty(org.eclipse.debug.core.model.IMemoryBlock, java.lang.String) */ + @Override public Object getProperty(IMemoryBlock block, String property) { - + // When the synchronization service is disabled // return null for all queries to properties // This is to ensure that renderings are not synchronized // to new synchronization properties when the sync service is // disabled. - if (!isEnabled()) + if (!isEnabled()) { return null; - - SynchronizeInfo info = (SynchronizeInfo)fSynchronizeInfo.get(block); - - if (info != null) + } + + SynchronizeInfo info = fSynchronizeInfo.get(block); + + if (info != null) { return info.getProperty(property); - + } + return null; } - - /* (non-Javadoc) - * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse + * .jface.util.PropertyChangeEvent) */ + @Override public void propertyChange(PropertyChangeEvent event) { - if (event == null || !(event.getSource() instanceof IMemoryRendering)) - { + if (event == null || !(event.getSource() instanceof IMemoryRendering)) { return; } - + // Do not handle any property changed event as the // sync service is being enabled. // Otherwise, current sync info provider may overwrite - // sync info unexpectedly. We want to sync with the rendering + // sync info unexpectedly. We want to sync with the rendering // that is last changed. - if (fEnableState == ENABLING) + if (fEnableState == ENABLING) { return; - - IMemoryRendering rendering = ((IMemoryRendering)event.getSource()); + } + + IMemoryRendering rendering = ((IMemoryRendering) event.getSource()); IMemoryBlock memoryBlock = rendering.getMemoryBlock(); String propertyId = event.getProperty(); Object value = event.getNewValue(); - - if (DEBUG_SYNC_SERVICE) - { + + if (DEBUG_SYNC_SERVICE) { DebugUIPlugin.trace("SYNC SERVICE RECEIVED CHANGED EVENT:"); //$NON-NLS-1$ DebugUIPlugin.trace("Source: " + rendering); //$NON-NLS-1$ DebugUIPlugin.trace("Property: " + propertyId); //$NON-NLS-1$ DebugUIPlugin.trace("Value: " + value); //$NON-NLS-1$ - - if (value instanceof BigInteger) - { - DebugUIPlugin.trace("Value in hex: " + ((BigInteger)value).toString(16)); //$NON-NLS-1$ + + if (value instanceof BigInteger) { + DebugUIPlugin.trace("Value in hex: " + ((BigInteger) value).toString(16)); //$NON-NLS-1$ } } - - if (memoryBlock == null) + + if (memoryBlock == null) { return; - - if (propertyId == null) + } + + if (propertyId == null) { return; - + } + // find the synchronize info object for the memory block - SynchronizeInfo info = (SynchronizeInfo)fSynchronizeInfo.get(memoryBlock); - + SynchronizeInfo info = fSynchronizeInfo.get(memoryBlock); + // if info is not available, need to create one to hold the property - if (info == null) - { + if (info == null) { info = new SynchronizeInfo(memoryBlock); fSynchronizeInfo.put(memoryBlock, info); } - + // get the value of the property Object oldValue = info.getProperty(propertyId); - - if (oldValue == null) - { + + if (oldValue == null) { // if the value has never been added to the info object // set the property and fire a change event info.setProperty(propertyId, value); fLastChangedRendering = rendering; firePropertyChanged(event); return; - } - else if (!oldValue.equals(value)) - { + } else if (!oldValue.equals(value)) { // if the value has changed // set the property and fire a change event info.setProperty(propertyId, value); @@ -348,60 +361,57 @@ public class MemoryViewSynchronizationService implements firePropertyChanged(event); } } - - public void setEnabled(boolean enabled) - { - if (enabled && fEnableState == ENABLED) + + public void setEnabled(boolean enabled) { + if (enabled && fEnableState == ENABLED) { return; - - if (!enabled && fEnableState == DISABLED) + } + + if (!enabled && fEnableState == DISABLED) { return; - - try - { - if (enabled) - { + } + + try { + if (enabled) { fEnableState = ENABLING; - // get sync info from the sync service provider - if (fLastChangedRendering != null) - { + // get sync info from the sync service provider + if (fLastChangedRendering != null) { IMemoryBlock memBlock = fLastChangedRendering.getMemoryBlock(); - SynchronizeInfo info = (SynchronizeInfo)fSynchronizeInfo.get(memBlock); + SynchronizeInfo info = fSynchronizeInfo.get(memBlock); String[] ids = info.getPropertyIds(); - + // stop handling property changed event while the // synchronization service is being enabled // this is to get around problem when the last changed // rendering is not currently the sync info provider - - for (int i=0; i<ids.length; i++) - { + + for (int i = 0; i < ids.length; i++) { PropertyChangeEvent evt = new PropertyChangeEvent(fLastChangedRendering, ids[i], null, info.getProperty(ids[i])); firePropertyChanged(evt); } } } - } - finally - { - if (enabled) + } finally { + if (enabled) { fEnableState = ENABLED; - else + } else { fEnableState = DISABLED; + } } } - - public boolean isEnabled() - { + + public boolean isEnabled() { return fEnableState == ENABLED; } - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService#setSynchronizationProvider(org.eclipse.debug.ui.memory.IMemoryRendering) + /* + * (non-Javadoc) + * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService# + * setSynchronizationProvider(org.eclipse.debug.ui.memory.IMemoryRendering) */ + @Override public void setSynchronizationProvider(IMemoryRendering rendering) { - + if (DEBUG_SYNC_SERVICE) { DebugUIPlugin.trace("SYNCHRONIZATION PROVIDER: " + rendering); //$NON-NLS-1$ } @@ -413,11 +423,13 @@ public class MemoryViewSynchronizationService implements } fSyncServiceProvider = rendering; } - - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService#getSynchronizationProvider() + /* + * (non-Javadoc) + * @see org.eclipse.debug.ui.memory.IMemoryRenderingSynchronizationService# + * getSynchronizationProvider() */ + @Override public IMemoryRendering getSynchronizationProvider() { return fSyncServiceProvider; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTab.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTab.java index b39cd4f10..1f7dd7c23 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTab.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTab.java @@ -32,8 +32,9 @@ import org.eclipse.swt.widgets.Listener; import org.eclipse.ui.progress.WorkbenchJob; /** - * Represents a tab in the Memory View. This is where memory renderings - * are hosted in the Memory View. + * Represents a tab in the Memory View. This is where memory renderings are + * hosted in the Memory View. + * * @since 3.1 */ public class MemoryViewTab implements IMemoryViewTab, IPropertyChangeListener, Listener { @@ -45,42 +46,42 @@ public class MemoryViewTab implements IMemoryViewTab, IPropertyChangeListener, L private boolean fIsDisposed = false; private Control fControl; private RenderingViewPane fContainer; - - - public MemoryViewTab(CTabItem tabItem, IMemoryRendering rendering, RenderingViewPane container) - { + + public MemoryViewTab(CTabItem tabItem, IMemoryRendering rendering, RenderingViewPane container) { fTabItem = tabItem; fRendering = rendering; fContainer = container; - + // set the rendering as the synchronization provider - // as the new rendering should be in focus and have control + // as the new rendering should be in focus and have control // after it's created - + if (container.getMemoryRenderingSite().getSynchronizationService() != null) container.getMemoryRenderingSite().getSynchronizationService().setSynchronizationProvider(rendering); Control control = createViewTab(); - + control.addListener(SWT.Activate, this); control.addListener(SWT.Deactivate, this); - + fTabItem.setControl(control); fTabItem.setData(this); fTabItem.setText(getLabel()); fTabItem.setImage(getImage()); - + fTabItem.addDisposeListener(fDisposeListener = new DisposeListener() { + @Override public void widgetDisposed(DisposeEvent e) { fTabItem.removeDisposeListener(fDisposeListener); dispose(); - }}); + } + }); } - - private Control createViewTab() - { + + private Control createViewTab() { ISafeRunnable safeRunnable = new ISafeRunnable() { + @Override public void handleException(Throwable exception) { // create an error rendering to fill the view tab ErrorRendering rendering = new ErrorRendering(fRendering.getRenderingId(), exception); @@ -88,72 +89,80 @@ public class MemoryViewTab implements IMemoryViewTab, IPropertyChangeListener, L // dispose the rendering fRendering.dispose(); - + fRendering = rendering; fControl = rendering.createControl(fTabItem.getParent()); } + @Override public void run() throws Exception { fControl = fRendering.createControl(fTabItem.getParent()); fRendering.addPropertyChangeListener(getInstance()); - }}; - + } + }; + SafeRunner.run(safeRunnable); return fControl; } - - private String getLabel() - { + + private String getLabel() { return fRendering.getLabel(); } - - private Image getImage() - { + + private Image getImage() { return fRendering.getImage(); } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#dispose() */ + @Override public void dispose() { - + if (fIsDisposed) return; - + fIsDisposed = true; - + fRendering.removePropertyChangeListener(this); - - if (!fControl.isDisposed()) - { + + if (!fControl.isDisposed()) { fControl.removeListener(SWT.Activate, this); fControl.removeListener(SWT.Deactivate, this); } - + // always deactivate rendering before disposing it. fRendering.deactivated(); - + fRendering.dispose(); } - - public boolean isDisposed() - { + + @Override + public boolean isDisposed() { return fIsDisposed; } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#isEnabled() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#isEnabled() */ + @Override public boolean isEnabled() { return fEnabled; } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#setEnabled(boolean) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#setEnabled( + * boolean) */ + @Override public void setEnabled(boolean enabled) { fEnabled = enabled; - + if (fEnabled) fRendering.becomesVisible(); else @@ -161,67 +170,73 @@ public class MemoryViewTab implements IMemoryViewTab, IPropertyChangeListener, L } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#setTabLabel(java.lang.String) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#setTabLabel + * (java.lang.String) */ + @Override public void setTabLabel(String label) { fTabItem.setText(label); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#getTabLabel() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#getTabLabel() */ + @Override public String getTabLabel() { return fTabItem.getText(); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#getRendering() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.IMemoryViewTab#getRendering() */ + @Override public IMemoryRendering getRendering() { return fRendering; } - /* (non-Javadoc) - * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse + * .jface.util.PropertyChangeEvent) */ + @Override public void propertyChange(final PropertyChangeEvent event) { - + // make sure this runs on the UI thread, otherwise, it // will get to a swt exception - + WorkbenchJob job = new WorkbenchJob("MemoryViewTab PropertyChanged") { //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { if (isDisposed()) return Status.OK_STATUS; - - if (event.getSource() == fRendering) - { - if (event.getProperty().equals(IBasicPropertyConstants.P_TEXT)) - { + + if (event.getSource() == fRendering) { + if (event.getProperty().equals(IBasicPropertyConstants.P_TEXT)) { Object value = event.getNewValue(); - if (value != null && value instanceof String) - { - String label = (String)value; + if (value != null && value instanceof String) { + String label = (String) value; setTabLabel(label); - } - else - { + } else { setTabLabel(fRendering.getLabel()); } } - - if (event.getProperty().equals(IBasicPropertyConstants.P_IMAGE)) - { + + if (event.getProperty().equals(IBasicPropertyConstants.P_IMAGE)) { Object value = event.getNewValue(); - if (value != null && value instanceof Image) - { - Image image = (Image)value; + if (value != null && value instanceof Image) { + Image image = (Image) value; fTabItem.setImage(image); - } - else - { + } else { fTabItem.setImage(fRendering.getImage()); } } @@ -232,23 +247,24 @@ public class MemoryViewTab implements IMemoryViewTab, IPropertyChangeListener, L job.setSystem(true); job.schedule(); } - - private MemoryViewTab getInstance() - { + + private MemoryViewTab getInstance() { return this; } - /* (non-Javadoc) - * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event) + /* + * (non-Javadoc) + * @see + * org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets. + * Event) */ + @Override public void handleEvent(Event event) { - if (event.type == SWT.Activate) - { + if (event.type == SWT.Activate) { fRendering.activated(); fContainer.setRenderingSelection(fRendering); } - if (event.type == SWT.Deactivate) - { + if (event.type == SWT.Deactivate) { fRendering.deactivated(); } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeModelContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeModelContentProvider.java index 2862b623d..4eea20d3e 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeModelContentProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeModelContentProvider.java @@ -19,22 +19,17 @@ import org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider; import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelDelta; import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer; -public class MemoryViewTreeModelContentProvider extends - TreeModelContentProvider { - +public class MemoryViewTreeModelContentProvider extends TreeModelContentProvider { + + @Override protected void updateNodes(IModelDelta[] nodes, int mask) { - - if (getViewer() instanceof TreeModelViewer) - { - for (int i = 0; i < nodes.length; i++) { + + if (getViewer() instanceof TreeModelViewer) { + for (int i = 0; i < nodes.length; i++) { IModelDelta node = nodes[i]; int flags = node.getFlags(); - if((mask & ITreeModelContentProvider.CONTROL_MODEL_DELTA_FLAGS) != 0 && - (flags & IModelDelta.ADDED) != 0 && - (flags & IModelDelta.SELECT) != 0 && - node.getElement() instanceof IMemoryBlock) - { + if ((mask & ITreeModelContentProvider.CONTROL_MODEL_DELTA_FLAGS) != 0 && (flags & IModelDelta.ADDED) != 0 && (flags & IModelDelta.SELECT) != 0 && node.getElement() instanceof IMemoryBlock) { if ((flags & IModelDelta.SELECT) != 0) { if (getPresentationContext().getPart() instanceof MemoryView) { MemoryView view = (MemoryView) getPresentationContext().getPart(); @@ -54,53 +49,51 @@ public class MemoryViewTreeModelContentProvider extends } flags = flags & mask; - if ((flags & IModelDelta.ADDED) != 0) { - handleAdd(node); - } - if ((flags & IModelDelta.REMOVED) != 0) { - handleRemove(node); - } - if ((flags & IModelDelta.CONTENT) != 0) { - handleContent(node); - } - if ((flags & IModelDelta.STATE) != 0) { - handleState(node); - } - if ((flags & IModelDelta.INSERTED) != 0) { - handleInsert(node); - } - if ((flags & IModelDelta.REPLACED) != 0) { - handleReplace(node); - } - if ((flags & IModelDelta.INSTALL) != 0) { - handleInstall(node); - } - if ((flags & IModelDelta.UNINSTALL) != 0) { - handleUninstall(node); - } - if ((flags & IModelDelta.EXPAND) != 0) { - handleExpand(node); - } - if ((flags & IModelDelta.COLLAPSE) != 0) { - handleCollapse(node); - } - if ((flags & IModelDelta.SELECT) != 0) { - handleSelect(node); - } - if ((flags & IModelDelta.REVEAL) != 0) { - handleReveal(node); - } - updateNodes(node.getChildDeltas(), mask); - } + if ((flags & IModelDelta.ADDED) != 0) { + handleAdd(node); + } + if ((flags & IModelDelta.REMOVED) != 0) { + handleRemove(node); + } + if ((flags & IModelDelta.CONTENT) != 0) { + handleContent(node); + } + if ((flags & IModelDelta.STATE) != 0) { + handleState(node); + } + if ((flags & IModelDelta.INSERTED) != 0) { + handleInsert(node); + } + if ((flags & IModelDelta.REPLACED) != 0) { + handleReplace(node); + } + if ((flags & IModelDelta.INSTALL) != 0) { + handleInstall(node); + } + if ((flags & IModelDelta.UNINSTALL) != 0) { + handleUninstall(node); + } + if ((flags & IModelDelta.EXPAND) != 0) { + handleExpand(node); + } + if ((flags & IModelDelta.COLLAPSE) != 0) { + handleCollapse(node); + } + if ((flags & IModelDelta.SELECT) != 0) { + handleSelect(node); + } + if ((flags & IModelDelta.REVEAL) != 0) { + handleReveal(node); + } + updateNodes(node.getChildDeltas(), mask); + } } } - - private boolean isFirstMemoryBlock() - { + + private boolean isFirstMemoryBlock() { Object input = getViewer().getInput(); - if (input instanceof IMemoryBlockRetrieval) - { - IMemoryBlock[] memoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks((IMemoryBlockRetrieval)input); + if (input instanceof IMemoryBlockRetrieval) { + IMemoryBlock[] memoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks((IMemoryBlockRetrieval) input); if (memoryBlocks.length == 1) return true; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeViewer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeViewer.java index e97c86ea1..2031204ee 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeViewer.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewTreeViewer.java @@ -17,29 +17,31 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer; import org.eclipse.swt.widgets.Composite; /** - * Customized tree viewer for the Memory View - * This Tree Viewer has a specialized update policy for the memory view. - * When the model fires a ADDED delta, the update policy handles the event as follows: - * If the ADDED delta is accompanied by SELECT, and the added element is an memory blok, then - * the udpate policy asks the Memory View if the it is currently pinned to a memory block. If the view - * is currently pinned, then the SELECT delta is ignored. + * Customized tree viewer for the Memory View This Tree Viewer has a specialized + * update policy for the memory view. When the model fires a ADDED delta, the + * update policy handles the event as follows: If the ADDED delta is accompanied + * by SELECT, and the added element is an memory blok, then the udpate policy + * asks the Memory View if the it is currently pinned to a memory block. If the + * view is currently pinned, then the SELECT delta is ignored. + * + * If the ADDED delta and SELECT delta are recieved in separate nodes, then the + * delta will be handled as-is and would not take the pinning state of the + * memory view into account. * - * If the ADDED delta and SELECT delta are recieved in separate nodes, then the delta will be handled as-is and would - * not take the pinning state of the memory view into account. - * */ public class MemoryViewTreeViewer extends TreeModelViewer { - public MemoryViewTreeViewer(Composite parent, int style, - IPresentationContext context) { + public MemoryViewTreeViewer(Composite parent, int style, IPresentationContext context) { super(parent, style, context); } - - /* - * Need to have a customized content provider to define a special update policy for the Memory View - * (non-Javadoc) - * @see org.eclipse.debug.internal.ui.viewers.model.InternalTreeModelViewer#createContentProvider() + + /* + * Need to have a customized content provider to define a special update + * policy for the Memory View (non-Javadoc) + * @see org.eclipse.debug.internal.ui.viewers.model.InternalTreeModelViewer# + * createContentProvider() */ + @Override protected ITreeModelContentProvider createContentProvider() { return new MemoryViewTreeModelContentProvider(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewUtil.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewUtil.java index 7836738b8..2957f11e4 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewUtil.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MemoryViewUtil.java @@ -39,69 +39,36 @@ import org.eclipse.ui.progress.UIJob; * @since 3.0 */ public class MemoryViewUtil { - - public static final int[] ignoreKeyEvents = - { - SWT.ARROW_UP, - SWT.ARROW_DOWN, - SWT.ARROW_LEFT, - SWT.ARROW_RIGHT, - SWT.PAGE_UP, - SWT.PAGE_DOWN, - SWT.HOME, - SWT.END, - SWT.INSERT, - SWT.F1, - SWT.F2, - SWT.F3, - SWT.F4, - SWT.F5, - SWT.F6, - SWT.F7, - SWT.F8, - SWT.F9, - SWT.F10, - SWT.F11, - SWT.F12, - SWT.F13, - SWT.F14, - SWT.F15, - SWT.HELP, - SWT.CAPS_LOCK, - SWT.NUM_LOCK, - SWT.SCROLL_LOCK, - SWT.PAUSE, - SWT.BREAK, - SWT.PRINT_SCREEN, - SWT.ESC, - SWT.CTRL, - SWT.ALT, - SWT.SHIFT - }; - - public static ArrayList MEMORY_BLOCKS_HISTORY = new ArrayList(); - + + public static final int[] ignoreKeyEvents = { + SWT.ARROW_UP, SWT.ARROW_DOWN, SWT.ARROW_LEFT, SWT.ARROW_RIGHT, + SWT.PAGE_UP, SWT.PAGE_DOWN, SWT.HOME, SWT.END, SWT.INSERT, SWT.F1, + SWT.F2, SWT.F3, SWT.F4, SWT.F5, SWT.F6, SWT.F7, SWT.F8, SWT.F9, + SWT.F10, SWT.F11, SWT.F12, SWT.F13, SWT.F14, SWT.F15, SWT.HELP, + SWT.CAPS_LOCK, SWT.NUM_LOCK, SWT.SCROLL_LOCK, SWT.PAUSE, SWT.BREAK, + SWT.PRINT_SCREEN, SWT.ESC, SWT.CTRL, SWT.ALT, SWT.SHIFT }; + + public static ArrayList<String> MEMORY_BLOCKS_HISTORY = new ArrayList<String>(); + /** * @param selection * @return true if the given selection is valid for creating a memory block */ static public boolean isValidSelection(ISelection selection) { - + if (!(selection instanceof IStructuredSelection)) return false; - - //only single selection is allowed for this action - if (selection.isEmpty() || ((IStructuredSelection)selection).size() > 1) - { + + // only single selection is allowed for this action + if (selection.isEmpty() || ((IStructuredSelection) selection).size() > 1) { return false; } - - Object elem = ((IStructuredSelection)selection).getFirstElement(); - + + Object elem = ((IStructuredSelection) selection).getFirstElement(); + return isValidContext(elem); } - /** * @param elem * @return @@ -110,78 +77,75 @@ public class MemoryViewUtil { // if not debug element if (!(elem instanceof IAdaptable)) return false; - - IMemoryBlockRetrieval memRetrieval =(IMemoryBlockRetrieval) ((IAdaptable)elem).getAdapter(IMemoryBlockRetrieval.class); + + IMemoryBlockRetrieval memRetrieval = (IMemoryBlockRetrieval) ((IAdaptable) elem).getAdapter(IMemoryBlockRetrieval.class); IDebugTarget debugTarget = null; if (elem instanceof IDebugElement) { - debugTarget = ((IDebugElement)elem).getDebugTarget(); + debugTarget = ((IDebugElement) elem).getDebugTarget(); } else { - debugTarget = (IDebugTarget)((IAdaptable)elem).getAdapter(IDebugTarget.class); + debugTarget = (IDebugTarget) ((IAdaptable) elem).getAdapter(IDebugTarget.class); } - - if (memRetrieval == null) - { - // if debug element returns null from getAdapter, assume its debug target is going to retrieve memory blocks + + if (memRetrieval == null) { + // if debug element returns null from getAdapter, assume its debug + // target is going to retrieve memory blocks memRetrieval = debugTarget; } - + // not valid if the debug target is already terminated if (debugTarget != null && (debugTarget.isTerminated() || debugTarget.isDisconnected())) return false; - + if (memRetrieval != null && memRetrieval.supportsStorageRetrieval()) { return true; } - + return false; - } + } - /** * Helper function to open an error dialog. + * * @param title * @param message * @param e */ - static public void openError (final String title, final String message, final Exception e) - { - UIJob uiJob = new UIJob("open error"){ //$NON-NLS-1$ + static public void openError(final String title, final String message, final Exception e) { + UIJob uiJob = new UIJob("open error") { //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { -// open error for the exception + // open error for the exception String detail = IInternalDebugCoreConstants.EMPTY_STRING; if (e != null) detail = e.getMessage(); - + Shell shell = DebugUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(); - - MessageDialog.openError( - shell, - title, - message + "\n" + detail); //$NON-NLS-1$ + + MessageDialog.openError(shell, title, message + "\n" + detail); //$NON-NLS-1$ return Status.OK_STATUS; - }}; + } + }; uiJob.setSystem(true); uiJob.schedule(); } - - static IMemoryBlockManager getMemoryBlockManager() - { + + static IMemoryBlockManager getMemoryBlockManager() { return DebugPlugin.getDefault().getMemoryBlockManager(); } - - static public boolean isLinuxGTK() - { + + static public boolean isLinuxGTK() { String ws = Platform.getWS(); return ws.equals(Platform.WS_GTK); } - + /** - * Checks to see if the event is valid for activating - * cell editing in a view tab + * Checks to see if the event is valid for activating cell editing in a view + * tab + * * @param event - * @return true if the edit event is valid for activating the cell editor + * @return true if the edit event is valid for activating the cell editor */ public static boolean isValidEditEvent(int event) { for (int i = 0; i < MemoryViewUtil.ignoreKeyEvents.length; i++) { @@ -190,76 +154,71 @@ public class MemoryViewUtil { } return true; } - - public static BigInteger alignToBoundary(BigInteger integer, int numberOfUnitsPerLine) - { + + public static BigInteger alignToBoundary(BigInteger integer, int numberOfUnitsPerLine) { BigInteger[] result = integer.divideAndRemainder(BigInteger.valueOf(numberOfUnitsPerLine)); integer = integer.subtract(result[1]); return integer; } - - public static void addHistory(String expression) - { + + public static void addHistory(String expression) { if (!MEMORY_BLOCKS_HISTORY.contains(expression)) MEMORY_BLOCKS_HISTORY.add(0, expression); - + if (MEMORY_BLOCKS_HISTORY.size() > 5) - MEMORY_BLOCKS_HISTORY.remove(MEMORY_BLOCKS_HISTORY.size()-1); + MEMORY_BLOCKS_HISTORY.remove(MEMORY_BLOCKS_HISTORY.size() - 1); } - - public static String[] getHistory() - { - return (String[])MEMORY_BLOCKS_HISTORY.toArray(new String[MEMORY_BLOCKS_HISTORY.size()]); + + public static String[] getHistory() { + return MEMORY_BLOCKS_HISTORY.toArray(new String[MEMORY_BLOCKS_HISTORY.size()]); } - + /** * Return the memory block retrieval of the given object + * * @param object - * @return the memory block retrieval of the given object or <code>null</code> - * if no memory block retrieval can be found - * - * Returning null for the memory block retrieval will result in errors in operations - * that follow. - * - * Non-standard debug models must provide a memory block retrieval via - * <code>getAdapter(IMemoryBlockRetrieval.class</code> + * @return the memory block retrieval of the given object or + * <code>null</code> if no memory block retrieval can be found + * + * Returning null for the memory block retrieval will result in + * errors in operations that follow. + * + * Non-standard debug models must provide a memory block retrieval + * via <code>getAdapter(IMemoryBlockRetrieval.class</code> */ - public static IMemoryBlockRetrieval getMemoryBlockRetrieval(Object object) - { + public static IMemoryBlockRetrieval getMemoryBlockRetrieval(Object object) { IMemoryBlockRetrieval retrieval = null; - - // if memory block extension, retrieval must be queired throught its interface + + // if memory block extension, retrieval must be queired throught its + // interface if (object instanceof IMemoryBlockExtension) - return ((IMemoryBlockExtension)object).getMemoryBlockRetrieval(); + return ((IMemoryBlockExtension) object).getMemoryBlockRetrieval(); // check if the object can adapt to a memory block retrieval - if (object instanceof IAdaptable) - { - IAdaptable adaptable = (IAdaptable)object; - retrieval = (IMemoryBlockRetrieval)adaptable.getAdapter(IMemoryBlockRetrieval.class); + if (object instanceof IAdaptable) { + IAdaptable adaptable = (IAdaptable) object; + retrieval = (IMemoryBlockRetrieval) adaptable.getAdapter(IMemoryBlockRetrieval.class); } - - // if cannot adapt and the object itself is already an IMemoryBlockRetrieval, return that. - if (retrieval == null && object instanceof IMemoryBlockRetrieval) - { - retrieval = (IMemoryBlockRetrieval)object; + + // if cannot adapt and the object itself is already an + // IMemoryBlockRetrieval, return that. + if (retrieval == null && object instanceof IMemoryBlockRetrieval) { + retrieval = (IMemoryBlockRetrieval) object; } - + // otherewise, default back to the debug target - if (retrieval == null && object instanceof IDebugElement) - { - IDebugElement de = (IDebugElement)object; + if (retrieval == null && object instanceof IDebugElement) { + IDebugElement de = (IDebugElement) object; retrieval = de.getDebugTarget(); } - + return retrieval; } - + /** * Returns the hash code for this object, as an Integer. * */ - public static Integer getHashCode(Object o) - { + public static Integer getHashCode(Object o) { return new Integer(o.hashCode()); } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MonitorMemoryBlockDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MonitorMemoryBlockDialog.java index 474a6ea74..937f26044 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MonitorMemoryBlockDialog.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/MonitorMemoryBlockDialog.java @@ -11,7 +11,6 @@ package org.eclipse.debug.internal.ui.views.memory; - import org.eclipse.debug.core.model.IMemoryBlockRetrieval; import org.eclipse.debug.core.model.IMemoryBlockRetrievalExtension; import org.eclipse.debug.internal.core.IInternalDebugCoreConstants; @@ -33,7 +32,7 @@ import org.eclipse.ui.PlatformUI; /** * @since 3.0 */ -public class MonitorMemoryBlockDialog extends TrayDialog implements ModifyListener{ +public class MonitorMemoryBlockDialog extends TrayDialog implements ModifyListener { private Combo expressionInput; private Text lengthInput; @@ -42,30 +41,36 @@ public class MonitorMemoryBlockDialog extends TrayDialog implements ModifyListen private boolean needLength = true; private String fPrefillExp = null; private String fPrefillLength = null; - + /** - * the predefined width of the wrapping label for the expression to enter combo + * the predefined width of the wrapping label for the expression to enter + * combo + * * @since 3.3 */ private static final int LABEL_WIDTH = 210; - + /** * @param parentShell */ public MonitorMemoryBlockDialog(Shell parentShell, IMemoryBlockRetrieval memRetrieval, String prefillExp, String prefillLength) { super(parentShell); - + if (memRetrieval instanceof IMemoryBlockRetrievalExtension) needLength = false; - + fPrefillExp = prefillExp; fPrefillLength = prefillLength; setShellStyle(getShellStyle() | SWT.RESIZE); } - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets + * .Composite) */ + @Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); SWTFactory.createWrapLabel(comp, DebugUIMessages.MonitorMemoryBlockDialog_EnterExpressionToMonitor, 1, LABEL_WIDTH); @@ -74,7 +79,7 @@ public class MonitorMemoryBlockDialog extends TrayDialog implements ModifyListen expressionInput.setText(fPrefillExp); } expressionInput.addModifyListener(this); - + if (needLength) { SWTFactory.createLabel(comp, DebugUIMessages.MonitorMemoryBlockDialog_NumberOfBytes, 1); lengthInput = SWTFactory.createSingleText(comp, 1); @@ -86,32 +91,39 @@ public class MonitorMemoryBlockDialog extends TrayDialog implements ModifyListen PlatformUI.getWorkbench().getHelpSystem().setHelp(comp, IDebugUIConstants.PLUGIN_ID + ".MonitorMemoryBlockDialog_context"); //$NON-NLS-1$ return comp; } - /* (non-Javadoc) - * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) + + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets + * .Shell) */ + @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); - + newShell.setText(DebugUIMessages.MonitorMemoryBlockDialog_MonitorMemory); } - + /** * @return the entered expression */ public String getExpression() { return expression; } - + /** * @return the entered length */ public String getLength() { return length; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#okPressed() */ + @Override protected void okPressed() { expression = expressionInput.getText(); @@ -125,43 +137,47 @@ public class MonitorMemoryBlockDialog extends TrayDialog implements ModifyListen super.okPressed(); } - /* (non-Javadoc) - * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events + * .ModifyEvent) */ + @Override public void modifyText(ModifyEvent e) { updateOKButtonState(); } private void updateOKButtonState() { - if (needLength) - { + if (needLength) { String lengthText = lengthInput.getText(); String input = expressionInput.getText(); - - if (input == null || input.equals(IInternalDebugCoreConstants.EMPTY_STRING) || lengthText == null || lengthText.equals(IInternalDebugCoreConstants.EMPTY_STRING)) - { - getButton(IDialogConstants.OK_ID).setEnabled(false); - } - else - { + + if (input == null || input.equals(IInternalDebugCoreConstants.EMPTY_STRING) || lengthText == null || lengthText.equals(IInternalDebugCoreConstants.EMPTY_STRING)) { + getButton(IDialogConstants.OK_ID).setEnabled(false); + } else { getButton(IDialogConstants.OK_ID).setEnabled(true); - } + } } } - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets.Composite) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets + * .Composite) */ + @Override protected Control createButtonBar(Composite parent) { - - Control ret = super.createButtonBar(parent); - + + Control ret = super.createButtonBar(parent); + if (needLength) updateOKButtonState(); else // always enable the OK button if we only need the expression getButton(IDialogConstants.OK_ID).setEnabled(true); - + return ret; } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/NewMemoryViewAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/NewMemoryViewAction.java index 2e62da38d..b6afd1e24 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/NewMemoryViewAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/NewMemoryViewAction.java @@ -30,22 +30,25 @@ import org.eclipse.ui.PartInitException; public class NewMemoryViewAction implements IViewActionDelegate { private MemoryView fView; + + @Override public void init(IViewPart view) { if (view instanceof MemoryView) - fView = (MemoryView)view; + fView = (MemoryView) view; } + @Override public void run(IAction action) { - + String secondaryId = MemoryViewIdRegistry.getUniqueSecondaryId(IDebugUIConstants.ID_MEMORY_VIEW); try { IWorkbenchPage page = DebugUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage(); IViewPart newView = page.showView(IDebugUIConstants.ID_MEMORY_VIEW, secondaryId, IWorkbenchPage.VIEW_ACTIVATE); - + // set initial selection for new view setInitialSelection(newView); setInitialViewSettings(newView); - + } catch (PartInitException e) { // if view cannot be opened, open error DebugUIPlugin.log(e); @@ -54,52 +57,47 @@ public class NewMemoryViewAction implements IViewActionDelegate { private void setInitialSelection(IViewPart newView) { ISelection selection = fView.getSite().getSelectionProvider().getSelection(); - if (selection instanceof IStructuredSelection) - { - IStructuredSelection strucSel = (IStructuredSelection)selection; - + if (selection instanceof IStructuredSelection) { + IStructuredSelection strucSel = (IStructuredSelection) selection; + // return if current selection is empty if (strucSel.isEmpty()) return; - + Object obj = strucSel.getFirstElement(); - + if (obj == null) return; - - if (obj instanceof IMemoryRendering) - { - IMemoryBlock memBlock = ((IMemoryRendering)obj).getMemoryBlock(); + + if (obj instanceof IMemoryRendering) { + IMemoryBlock memBlock = ((IMemoryRendering) obj).getMemoryBlock(); strucSel = new StructuredSelection(memBlock); newView.getSite().getSelectionProvider().setSelection(strucSel); - } - else if (obj instanceof IMemoryBlock) - { + } else if (obj instanceof IMemoryBlock) { newView.getSite().getSelectionProvider().setSelection(strucSel); } } } private void setInitialViewSettings(IViewPart newView) { - if (fView != null && newView instanceof MemoryView) - { - MemoryView newMView = (MemoryView)newView; + if (fView != null && newView instanceof MemoryView) { + MemoryView newMView = (MemoryView) newView; IMemoryViewPane[] viewPanes = fView.getViewPanes(); int orientation = fView.getViewPanesOrientation(); - for (int i=0; i<viewPanes.length; i++) - { + for (int i = 0; i < viewPanes.length; i++) { // copy view pane visibility newMView.showViewPane(fView.isViewPaneVisible(viewPanes[i].getId()), viewPanes[i].getId()); } - + // do not want to copy renderings as it could be very expensive // create a blank view and let user creates renderings as needed - + // set orientation of new view newMView.setViewPanesOrientation(orientation); } } + @Override public void selectionChanged(IAction action, ISelection selection) { } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PinMemoryBlockAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PinMemoryBlockAction.java index 93f5fa3d3..c4ee61cb6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PinMemoryBlockAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PinMemoryBlockAction.java @@ -17,30 +17,34 @@ import org.eclipse.ui.IViewActionDelegate; import org.eclipse.ui.IViewPart; /** - * Action for pinning the display of the memory view to - * the current memory block. The view would not change - * selection when a new memory block is added if the diplay is pinned. - * + * Action for pinning the display of the memory view to the current memory + * block. The view would not change selection when a new memory block is added + * if the diplay is pinned. + * */ public class PinMemoryBlockAction implements IViewActionDelegate { private MemoryView fView; + + @Override public void init(IViewPart view) { if (view instanceof MemoryView) - fView = (MemoryView)view; + fView = (MemoryView) view; } + @Override public void run(IAction action) { if (fView == null) return; - + boolean pin = !fView.isPinMBDisplay(); fView.setPinMBDisplay(pin); - + action.setChecked(pin); } + @Override public void selectionChanged(IAction action, ISelection selection) { } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PropertyChangeNotifier.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PropertyChangeNotifier.java index 4b50660d2..558cd48bd 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PropertyChangeNotifier.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/PropertyChangeNotifier.java @@ -17,32 +17,37 @@ import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; /** - * Fire properties changes events in ISafeRunnable to ensure that - * exceptions are caught and handled. + * Fire properties changes events in ISafeRunnable to ensure that exceptions are + * caught and handled. + * * @since 3.1 */ -public class PropertyChangeNotifier implements ISafeRunnable -{ - +public class PropertyChangeNotifier implements ISafeRunnable { + IPropertyChangeListener fListener; PropertyChangeEvent fEvt; - - public PropertyChangeNotifier(IPropertyChangeListener listener, PropertyChangeEvent evt) - { + + public PropertyChangeNotifier(IPropertyChangeListener listener, PropertyChangeEvent evt) { fListener = listener; fEvt = evt; } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable) + + /* + * (non-Javadoc) + * @see + * org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable + * ) */ + @Override public void handleException(Throwable exception) { DebugUIPlugin.log(exception); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.core.runtime.ISafeRunnable#run() */ + @Override public void run() throws Exception { fListener.propertyChange(fEvt); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveMemoryRenderingAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveMemoryRenderingAction.java index 0b5618cba..d0fb67ef6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveMemoryRenderingAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveMemoryRenderingAction.java @@ -18,60 +18,60 @@ import org.eclipse.debug.ui.memory.IMemoryRendering; import org.eclipse.debug.ui.memory.IMemoryRenderingContainer; import org.eclipse.jface.action.Action; - /** - * Remove Memory Rendering action - * This action serves two purposes: - * - remove memory rendering from Memory Rendering Pane - * - quck way to remove a memory block from Memory Rendering Pane + * Remove Memory Rendering action This action serves two purposes: - remove + * memory rendering from Memory Rendering Pane - quck way to remove a memory + * block from Memory Rendering Pane + * + * When user clicks on the this tool bar action, it simply removes the top view + * tab from Memory Rendering Pane. * - * When user clicks on the this tool bar action, it simply removes - * the top view tab from Memory Rendering Pane. * @since 3.0 */ -public class RemoveMemoryRenderingAction extends Action -{ +public class RemoveMemoryRenderingAction extends Action { private IMemoryRenderingContainer fViewPane; - public RemoveMemoryRenderingAction(IMemoryRenderingContainer viewPane) - { + + public RemoveMemoryRenderingAction(IMemoryRenderingContainer viewPane) { // create action as drop down - super(DebugUIMessages.RemoveMemoryRenderingAction_Remove_rendering, AS_PUSH_BUTTON); - setText(DebugUIMessages.RemoveMemoryRenderingAction_Remove_rendering); + super(DebugUIMessages.RemoveMemoryRenderingAction_Remove_rendering, AS_PUSH_BUTTON); + setText(DebugUIMessages.RemoveMemoryRenderingAction_Remove_rendering); - setToolTipText(DebugUIMessages.RemoveMemoryRenderingAction_Remove_rendering); - setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_REMOVE_MEMORY)); + setToolTipText(DebugUIMessages.RemoveMemoryRenderingAction_Remove_rendering); + setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_REMOVE_MEMORY)); setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_LCL_REMOVE_MEMORY)); setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_REMOVE_MEMORY)); fViewPane = viewPane; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { - + // user has click on the RemoveMemoryRendering button IMemoryViewTab topTab = getViewTab(); - - if (topTab != null) - { + + if (topTab != null) { IMemoryRendering rendering = topTab.getRendering(); - - if (rendering != null) - { + + if (rendering != null) { fViewPane.removeMemoryRendering(rendering); } } } - /* (non-Javadoc) - * @see com.ibm.debug.defaultrenderings.internal.actions.AbstractMemoryAction#getViewTab() + /* + * (non-Javadoc) + * @see + * com.ibm.debug.defaultrenderings.internal.actions.AbstractMemoryAction + * #getViewTab() */ IMemoryViewTab getViewTab() { - if (fViewPane instanceof IMemoryView) - { - return ((IMemoryView)fViewPane).getTopMemoryTab(); + if (fViewPane instanceof IMemoryView) { + return ((IMemoryView) fViewPane).getTopMemoryTab(); } return null; - } + } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveRenderingContextAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveRenderingContextAction.java index c908ef62b..43a741344 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveRenderingContextAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RemoveRenderingContextAction.java @@ -19,51 +19,56 @@ import org.eclipse.ui.IViewPart; /** * @since 3.0 - * + * */ public class RemoveRenderingContextAction implements IViewActionDelegate { private IMemoryRenderingSite fMemoryView; - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) */ + @Override public void init(IViewPart view) { - if (view instanceof IMemoryRenderingSite) - { - fMemoryView = (IMemoryRenderingSite)view; + if (view instanceof IMemoryRenderingSite) { + fMemoryView = (IMemoryRenderingSite) view; } } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { if (fMemoryView == null) return; - + IMemoryRenderingContainer container = getRenderingContainer(action); - if (container != null) - { + if (container != null) { RemoveMemoryRenderingAction removeAction = new RemoveMemoryRenderingAction(container); removeAction.run(); } } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action + * .IAction, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IAction action, ISelection selection) { IMemoryRenderingContainer container = getRenderingContainer(action); - if (container instanceof RenderingViewPane) - { - if (!((RenderingViewPane)container).canRemoveRendering()) + if (container instanceof RenderingViewPane) { + if (!((RenderingViewPane) container).canRemoveRendering()) action.setEnabled(false); else action.setEnabled(true); } } - + /** * @param action * @return @@ -72,16 +77,14 @@ public class RemoveRenderingContextAction implements IViewActionDelegate { IMemoryRenderingContainer[] viewPanes = fMemoryView.getMemoryRenderingContainers(); String actionId = action.getId(); IMemoryRenderingContainer selectedPane = null; - - for (int i=0; i<viewPanes.length; i++) - { - if (actionId.indexOf(viewPanes[i].getId()) != -1) - { + + for (int i = 0; i < viewPanes.length; i++) { + if (actionId.indexOf(viewPanes[i].getId()) != -1) { selectedPane = viewPanes[i]; break; } } - + return selectedPane; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RenderingViewPane.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RenderingViewPane.java index d45f55b35..3628aa755 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RenderingViewPane.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RenderingViewPane.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2010 IBM Corporation and others. + * Copyright (c) 2004, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -62,178 +62,179 @@ import org.eclipse.ui.IWorkbenchPreferenceConstants; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.progress.UIJob; - - /** - * Represents a rendering view pane in the Memory View. - * This hosts the memory view tabs in the view. + * Represents a rendering view pane in the Memory View. This hosts the memory + * view tabs in the view. + * * @since 3.1 - * + * */ -public class RenderingViewPane extends AbstractMemoryViewPane implements IMemoryRenderingContainer{ +public class RenderingViewPane extends AbstractMemoryViewPane implements IMemoryRenderingContainer { public static final String RENDERING_VIEW_PANE_ID = DebugUIPlugin.getUniqueIdentifier() + ".MemoryView.RenderingViewPane"; //$NON-NLS-1$ - - private Hashtable fTabFolderForMemoryBlock = new Hashtable(); - private Hashtable fMemoryBlockFromTabFolder = new Hashtable(); + + private Hashtable<IMemoryBlock, CTabFolder> fTabFolderForMemoryBlock = new Hashtable<IMemoryBlock, CTabFolder>(); + private Hashtable<CTabFolder, IMemoryBlock> fMemoryBlockFromTabFolder = new Hashtable<CTabFolder, IMemoryBlock>(); private ViewPaneRenderingMgr fRenderingMgr; - + private IMemoryRenderingSite fRenderingSite; - private Set fAddedRenderings = new HashSet(); - private Set fAddedMemoryBlocks = new HashSet(); - + private Set<IMemoryRendering> fAddedRenderings = new HashSet<IMemoryRendering>(); + private Set<IMemoryBlock> fAddedMemoryBlocks = new HashSet<IMemoryBlock>(); + private boolean fCanAddRendering = true; private boolean fCanRemoveRendering = true; - + /** * @param parent is the view hosting this view pane * @param paneId is the identifier assigned by the Memory View * - * Pane id is assigned with the following format. - * Rendering view pane created has its id assigned to - * org.eclipse.debug.ui.MemoryView.RenderingViewPane.#. - * # is a number indicating the order of which the rendering view - * pane is created. First rendering view pane created will have its - * id assigned to org.eclipse.debug.ui.MemoryView.RenderingViewPane.1. - * Second rendering view pane created will have its id assigned to - * org.eclipse.debug.ui.MemoryView.RenderingViewPane.2. and so on. - * View pane are created from left to right by the Memory View. + * Pane id is assigned with the following format. Rendering view + * pane created has its id assigned to + * org.eclipse.debug.ui.MemoryView.RenderingViewPane.#. # is a + * number indicating the order of which the rendering view pane + * is created. First rendering view pane created will have its id + * assigned to + * org.eclipse.debug.ui.MemoryView.RenderingViewPane.1. Second + * rendering view pane created will have its id assigned to + * org.eclipse.debug.ui.MemoryView.RenderingViewPane.2. and so + * on. View pane are created from left to right by the Memory + * View. * */ public RenderingViewPane(IViewPart parent) { super(parent); - - if (parent instanceof IMemoryRenderingSite) - fRenderingSite = (IMemoryRenderingSite)parent; - else - { + + if (parent instanceof IMemoryRenderingSite) { + fRenderingSite = (IMemoryRenderingSite) parent; + } else { DebugUIPlugin.logErrorMessage("Parent for the rendering view pane is invalid."); //$NON-NLS-1$ } } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockAdded(org.eclipse.debug.core.model.IMemoryBlock) + + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockAdded + * (org.eclipse.debug.core.model.IMemoryBlock) */ + @Override public void memoryBlocksAdded(final IMemoryBlock[] memoryBlocks) { Display.getDefault().asyncExec(new Runnable() { + @Override public void run() { - - if (isDisposed()) + + if (isDisposed()) { return; - + } + // check condition before doing anything - if (memoryBlocks == null || memoryBlocks.length <= 0) + if (memoryBlocks == null || memoryBlocks.length <= 0) { return; - - for (int i=0; i<memoryBlocks.length; i++) - { + } + + for (int i = 0; i < memoryBlocks.length; i++) { IMemoryBlock memory = memoryBlocks[i]; - - if (!fTabFolderForMemoryBlock.containsKey(memory)) - { - createFolderForMemoryBlock(memory); - } + + if (!fTabFolderForMemoryBlock.containsKey(memory)) { + createFolderForMemoryBlock(memory); + } fAddedMemoryBlocks.add(memory); updateToolBarActionsEnablement(); } - }}); + } + }); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener#MemoryBlockRemoved(org.eclipse.debug.core.model.IMemoryBlock) + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.core.memory.IMemoryBlockListener# + * MemoryBlockRemoved(org.eclipse.debug.core.model.IMemoryBlock) */ + @Override public void memoryBlocksRemoved(final IMemoryBlock[] memoryBlocks) { Display.getDefault().asyncExec(new Runnable() { + @Override public void run() { - for (int j=0; j<memoryBlocks.length; j++) - { + for (int j = 0; j < memoryBlocks.length; j++) { IMemoryBlock mbRemoved = memoryBlocks[j]; - if (fTabFolderForMemoryBlock == null) - { + if (fTabFolderForMemoryBlock == null) { return; } - - // get all renderings from this memory block and remove them from the view + + // get all renderings from this memory block and remove them + // from the view IMemoryRendering[] renderings = fRenderingMgr.getRenderingsFromMemoryBlock(mbRemoved); - - for (int k=0; k<renderings.length; k++) - { + + for (int k = 0; k < renderings.length; k++) { removeMemoryRendering(renderings[k]); } - + // remove a the tab folder if the memory block is removed - CTabFolder tabFolder = - (CTabFolder) fTabFolderForMemoryBlock.get(mbRemoved); - - if (tabFolder == null) + CTabFolder tabFolder = fTabFolderForMemoryBlock.get(mbRemoved); + + if (tabFolder == null) { continue; - + } + fTabFolderForMemoryBlock.remove(mbRemoved); fMemoryBlockFromTabFolder.remove(tabFolder); IMemoryBlockRetrieval retrieve = MemoryViewUtil.getMemoryBlockRetrieval(mbRemoved); - if (retrieve != null) - { - if (fTabFolderForDebugView.contains(tabFolder)) - { + if (retrieve != null) { + if (fTabFolderForDebugView.contains(tabFolder)) { fTabFolderForDebugView.remove(MemoryViewUtil.getHashCode(retrieve)); } } - - if (!tabFolder.isDisposed()) { + + if (!tabFolder.isDisposed()) { // dispose all view tabs belonging to the tab folder CTabItem[] items = tabFolder.getItems(); - - for (int i=0; i<items.length; i++) - { + + for (int i = 0; i < items.length; i++) { disposeTab(items[i]); } - + // dispose the tab folder - tabFolder.dispose(); - + tabFolder.dispose(); + // if this is the top control - if (tabFolder == fStackLayout.topControl) - { - + if (tabFolder == fStackLayout.topControl) { + // if memory view is visible and have a selection // follow memory view's selection - + ISelection selection = DebugUIPlugin.getActiveWorkbenchWindow().getSelectionService().getSelection(IDebugUIConstants.ID_MEMORY_VIEW); IMemoryBlock mbToSelect = getMemoryBlock(selection); - - if (mbToSelect != null) - { - // memory view may not have got the event and is still displaying + + if (mbToSelect != null) { + // memory view may not have got the event and is + // still displaying // the deleted memory block - if (mbToSelect != mbRemoved) + if (mbToSelect != mbRemoved) { handleMemoryBlockSelection(null, mbToSelect); - else if ((MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieve).length > 0)) - { + } else if ((MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieve).length > 0)) { mbToSelect = MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieve)[0]; - handleMemoryBlockSelection(null, mbToSelect); - } - else - { + handleMemoryBlockSelection(null, mbToSelect); + } else { emptyFolder(); } - } - else if (MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieve).length > 0) - { // get to the next folder + } else if (MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieve).length > 0) { // get + // to + // the + // next + // folder mbToSelect = MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieve)[0]; handleMemoryBlockSelection(null, mbToSelect); - } - else - { + } else { emptyFolder(); - + } } - + // if not the top control // no need to do anything } - + fAddedMemoryBlocks.remove(mbRemoved); updateToolBarActionsEnablement(); } @@ -242,112 +243,127 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory } - /* (non-Javadoc) - * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui. + * IWorkbenchPart, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(final IWorkbenchPart part, final ISelection selection) { - if (isDisposed()) + if (isDisposed()) { return; - + } + // do not schedule job if any of these conditions are true - if(part == RenderingViewPane.this) + if (part == RenderingViewPane.this) { return; - - if (!(selection instanceof IStructuredSelection)) + } + + if (!(selection instanceof IStructuredSelection)) { return; - - if (selection == AbstractMemoryViewPane.EMPTY) + } + + if (selection == AbstractMemoryViewPane.EMPTY) { return; - - UIJob job = new UIJob("RenderingViewPane selectionChanged"){ //$NON-NLS-1$ + } + + UIJob job = new UIJob("RenderingViewPane selectionChanged") { //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { try { - if (isDisposed()) + if (isDisposed()) { return Status.OK_STATUS; - - if (selection.isEmpty()) - { + } + + if (selection.isEmpty()) { // if the event comes from Memory View - // pick empty tab folder as the memory view is no longer displaying anything - if (part.getSite().getId().equals(IDebugUIConstants.ID_MEMORY_VIEW)) - { - if (part == getMemoryRenderingSite().getSite().getPart()) - { + // pick empty tab folder as the memory view is no longer + // displaying anything + if (part.getSite().getId().equals(IDebugUIConstants.ID_MEMORY_VIEW)) { + if (part == getMemoryRenderingSite().getSite().getPart()) { IMemoryViewTab lastViewTab = getTopMemoryTab(); - - if (lastViewTab != null) + + if (lastViewTab != null) { lastViewTab.setEnabled(false); - + } + emptyFolder(); } } - + // do not do anything if there is no selection - // In the case when a debug adpater fires a debug event incorrectly, Launch View sets - // selection to nothing. If the view tab is disabled, it erases all the "delta" information - // in the content. This may not be desirable as it will cause memory to show up as - // unchanged when it's actually changed. Do not disable the view tab until there is a + // In the case when a debug adpater fires a debug event + // incorrectly, Launch View sets + // selection to nothing. If the view tab is disabled, it + // erases all the "delta" information + // in the content. This may not be desirable as it will + // cause memory to show up as + // unchanged when it's actually changed. Do not disable + // the view tab until there is a // valid selection. - + return Status.OK_STATUS; } - + // back up current view tab IMemoryViewTab lastViewTab = getTopMemoryTab(); - - if (!(selection instanceof IStructuredSelection)) + + if (!(selection instanceof IStructuredSelection)) { return Status.OK_STATUS; + } - Object elem = ((IStructuredSelection)selection).getFirstElement(); - - if (elem instanceof IMemoryBlock) - { + Object elem = ((IStructuredSelection) selection).getFirstElement(); + + if (elem instanceof IMemoryBlock) { // if the selection event comes from this view - if (part == getMemoryRenderingSite()) - { - // find the folder associated with the given IMemoryBlockRetrieval - IMemoryBlock memBlock = (IMemoryBlock)elem; - + if (part == getMemoryRenderingSite()) { + // find the folder associated with the given + // IMemoryBlockRetrieval + IMemoryBlock memBlock = (IMemoryBlock) elem; + // should never get here... added code for safety - if (fTabFolderForMemoryBlock == null) - { - if (lastViewTab != null) + if (fTabFolderForMemoryBlock == null) { + if (lastViewTab != null) { lastViewTab.setEnabled(false); - + } + emptyFolder(); - return Status.OK_STATUS; + return Status.OK_STATUS; } - + handleMemoryBlockSelection(lastViewTab, memBlock); } } - } - catch(SWTException se) - { + } catch (SWTException se) { DebugUIPlugin.log(se); } return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } - + public void handleMemoryBlockSelection(final IMemoryViewTab lastViewTab, final IMemoryBlock memBlock) { // Do not check if the debug target of mb is removed - // We should not get into this method if the debug target of the memory block is terminated - // Memory Block Manager gets the terminate event and would have removed all memory blocks + // We should not get into this method if the debug target of the memory + // block is terminated + // Memory Block Manager gets the terminate event and would have removed + // all memory blocks // associated with the debug target - // Therefore, we will never try to set a selection to a memory block whose target is terminated + // Therefore, we will never try to set a selection to a memory block + // whose target is terminated // check current memory block CTabFolder currentFolder = (CTabFolder) fStackLayout.topControl; if (currentFolder != null && !currentFolder.isDisposed()) { - IMemoryBlock currentBlk = (IMemoryBlock) fMemoryBlockFromTabFolder.get(currentFolder); + IMemoryBlock currentBlk = fMemoryBlockFromTabFolder.get(currentFolder); if (currentBlk != null) { - if (currentBlk == memBlock) + if (currentBlk == memBlock) { return; + } } } @@ -360,26 +376,26 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory // if we've got a tabfolder to go with the IMemoryBlock, display // it if (fTabFolderForMemoryBlock.containsKey(memBlock)) { - if (fStackLayout.topControl != (CTabFolder) fTabFolderForMemoryBlock.get(memBlock)) { - setTabFolder((CTabFolder) fTabFolderForMemoryBlock.get(memBlock)); + if (fStackLayout.topControl != fTabFolderForMemoryBlock.get(memBlock)) { + setTabFolder(fTabFolderForMemoryBlock.get(memBlock)); fViewPaneCanvas.layout(); } } else { // otherwise, add a new one CTabFolder folder = createTabFolder(fViewPaneCanvas); - + fTabFolderForMemoryBlock.put(memBlock, folder); fMemoryBlockFromTabFolder.put(folder, memBlock); - setTabFolder((CTabFolder) fTabFolderForMemoryBlock.get(memBlock)); + setTabFolder(fTabFolderForMemoryBlock.get(memBlock)); fViewPaneCanvas.layout(); fAddedMemoryBlocks.add(memBlock); - + newCreateRenderingForFolder(memBlock, folder); } // restore view tabs IMemoryRendering[] renderings = fRenderingMgr.getRenderingsFromMemoryBlock(memBlock); CTabFolder toDisplay = (CTabFolder) fStackLayout.topControl; - + // if only CreateRendering is present, restore renderings if (isRestoreViewTabs(toDisplay)) { restoreViewTabs(renderings); @@ -403,80 +419,81 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory } IMemoryViewTab viewTab = getTopMemoryTab(); - if (viewTab != null) + if (viewTab != null) { setRenderingSelection(viewTab.getRendering()); + } - //set toolbar actions enabled/disabled + // set toolbar actions enabled/disabled updateToolBarActionsEnablement(); } - - private boolean isRestoreViewTabs(CTabFolder folder) - { - if (canAddRendering()) + + private boolean isRestoreViewTabs(CTabFolder folder) { + if (canAddRendering()) { return (folder.getItemCount() == 1 && getTopMemoryTab().getRendering() instanceof CreateRendering); - else + } else { return (folder.getItemCount() == 0); + } } - - private int getIndexOfCreateRenderingTab(CTabFolder folder) - { - for(int i = 0; i < folder.getItemCount(); i++) - if(folder.getItem(i).getData() instanceof MemoryViewTab && - ((MemoryViewTab) folder.getItem(i).getData()).getRendering() instanceof CreateRendering) + + private int getIndexOfCreateRenderingTab(CTabFolder folder) { + for (int i = 0; i < folder.getItemCount(); i++) { + if (folder.getItem(i).getData() instanceof MemoryViewTab && ((MemoryViewTab) folder.getItem(i).getData()).getRendering() instanceof CreateRendering) { return i; - + } + } + return -1; } public void memoryBlockRenderingAdded(final IMemoryRendering rendering) { - + Display.getDefault().asyncExec(new Runnable() { + @Override public void run() { - - if (isDisposed()) + + if (isDisposed()) { return; - - if (fAddedRenderings.contains(rendering)) + } + + if (fAddedRenderings.contains(rendering)) { return; + } IMemoryBlock memoryblk = rendering.getMemoryBlock(); - CTabFolder tabFolder = (CTabFolder) fTabFolderForMemoryBlock.get(memoryblk); - - if (tabFolder == null) - { + CTabFolder tabFolder = fTabFolderForMemoryBlock.get(memoryblk); + + if (tabFolder == null) { tabFolder = createFolderForMemoryBlock(memoryblk); } - - if (tabFolder == fStackLayout.topControl) - { + + if (tabFolder == fStackLayout.topControl) { // disable current view tab if (getTopMemoryTab() != null) { deactivateRendering(getTopMemoryTab()); getTopMemoryTab().setEnabled(false); - } + } } fAddedRenderings.add(rendering); - + int index = getIndexOfCreateRenderingTab(tabFolder); - if (index < 0) - index = 0; + if (index < 0) { + index = 0; + } CTabItem tab = createTab(tabFolder, index); - - MemoryViewTab viewTab = new MemoryViewTab(tab, rendering,getInstance()); + + MemoryViewTab viewTab = new MemoryViewTab(tab, rendering, getInstance()); tabFolder.setSelection(tabFolder.indexOf(tab)); - - if (tabFolder == fStackLayout.topControl) - { + + if (tabFolder == fStackLayout.topControl) { setRenderingSelection(viewTab.getRendering()); // disable top view tab if the view pane is not visible IMemoryViewTab top = getTopMemoryTab(); - if (top != null) + if (top != null) { top.setEnabled(fVisible); - } - else - { + } + } else { deactivateRendering(viewTab); viewTab.setEnabled(false); } @@ -486,67 +503,64 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory }); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.memory.IMemoryRenderingListener#MemoryBlockRenderingRemoved(org.eclipse.debug.internal.core.memory.IMemoryRendering) + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.core.memory.IMemoryRenderingListener# + * MemoryBlockRenderingRemoved + * (org.eclipse.debug.internal.core.memory.IMemoryRendering) */ public void memoryBlockRenderingRemoved(final IMemoryRendering rendering) { final IMemoryBlock memory = rendering.getMemoryBlock(); - - // need to run the following code on the UI Thread to avoid invalid thread access exception - Display.getDefault().asyncExec(new Runnable() - { - public void run() - { - if (!fAddedRenderings.contains(rendering)) + + // need to run the following code on the UI Thread to avoid invalid + // thread access exception + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + if (!fAddedRenderings.contains(rendering)) { return; - + } + fAddedRenderings.remove(rendering); - + CTabFolder tabFolder = (CTabFolder) fStackLayout.topControl; - - if (tabFolder.isDisposed()) + + if (tabFolder.isDisposed()) { return; - + } + CTabItem[] tabs = tabFolder.getItems(); boolean foundTab = false; - for (int i = 0; i < tabs.length; i++) - { + for (int i = 0; i < tabs.length; i++) { IMemoryViewTab viewTab = (IMemoryViewTab) tabs[i].getData(); - - if (tabs[i].isDisposed()) + + if (tabs[i].isDisposed()) { continue; - + } - if (viewTab.getRendering().getMemoryBlock() == memory) - { - if (viewTab.getRendering() == rendering) - { + if (viewTab.getRendering().getMemoryBlock() == memory) { + if (viewTab.getRendering() == rendering) { foundTab = true; disposeTab(tabs[i]); break; } - + } } // if a tab is not found in the current top control // this deletion is a result of a debug target termination // find memory from other folder and dispose the view tab - if (!foundTab) - { - Enumeration enumeration = fTabFolderForMemoryBlock.elements(); - while (enumeration.hasMoreElements()) - { - CTabFolder otherTabFolder = (CTabFolder) enumeration.nextElement(); + if (!foundTab) { + Enumeration<CTabFolder> enumeration = fTabFolderForMemoryBlock.elements(); + while (enumeration.hasMoreElements()) { + CTabFolder otherTabFolder = enumeration.nextElement(); tabs = otherTabFolder.getItems(); IMemoryViewTab viewTab = null; - for (int i = 0; i < tabs.length; i++) - { + for (int i = 0; i < tabs.length; i++) { viewTab = (IMemoryViewTab) tabs[i].getData(); - if (viewTab.getRendering().getMemoryBlock() == memory) - { - if (viewTab.getRendering() == rendering) - { + if (viewTab.getRendering().getMemoryBlock() == memory) { + if (viewTab.getRendering() == rendering) { foundTab = true; disposeTab(tabs[i]); break; @@ -556,199 +570,206 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory } } IMemoryViewTab top = getTopMemoryTab(); - + // update selection - if (top != null) + if (top != null) { setRenderingSelection(top.getRendering()); - + } + updateToolBarActionsEnablement(); } }); - - } - + + } + /** * @param viewTab */ protected void setRenderingSelection(IMemoryRendering rendering) { - if (rendering != null) - { - fSelectionProvider.setSelection(new StructuredSelection(rendering)); - } + if (rendering != null) { + fSelectionProvider.setSelection(new StructuredSelection(rendering)); + } } - - private void restoreViewTabs(IMemoryRendering[] renderings) - { - for (int i=0; i<renderings.length; i++) - { + + private void restoreViewTabs(IMemoryRendering[] renderings) { + for (int i = 0; i < renderings.length; i++) { memoryBlockRenderingAdded(renderings[i]); } } - - private void handleDebugElementSelection(final IMemoryViewTab lastViewTab, final IAdaptable element) - { + + private void handleDebugElementSelection(final IMemoryViewTab lastViewTab, final IAdaptable element) { // get current memory block retrieval and debug target IMemoryBlockRetrieval currentRetrieve = null; - + // get tab folder CTabFolder tabFolder = (CTabFolder) fStackLayout.topControl; - + // get memory block - IMemoryBlock currentBlock = (IMemoryBlock)fMemoryBlockFromTabFolder.get(tabFolder); - - if (currentBlock != null) - { + IMemoryBlock currentBlock = fMemoryBlockFromTabFolder.get(tabFolder); + + if (currentBlock != null) { currentRetrieve = MemoryViewUtil.getMemoryBlockRetrieval(currentBlock); - + // backup current retrieve and tab folder - if (currentRetrieve != null && tabFolder != null) - { + if (currentRetrieve != null && tabFolder != null) { fTabFolderForDebugView.put(MemoryViewUtil.getHashCode(currentRetrieve), tabFolder); } } - + // find the folder associated with the given IMemoryBlockRetrieval IMemoryBlockRetrieval retrieve = MemoryViewUtil.getMemoryBlockRetrieval(element); // if debug target has changed // switch to that tab folder - if (retrieve != null && retrieve != currentRetrieve) - { + if (retrieve != null && retrieve != currentRetrieve) { Integer key = MemoryViewUtil.getHashCode(retrieve); - CTabFolder folder = (CTabFolder)fTabFolderForDebugView.get(key); - - if (folder != null) - { + CTabFolder folder = fTabFolderForDebugView.get(key); + + if (folder != null) { setTabFolder(folder); fTabFolderForDebugView.put(key, folder); fViewPaneCanvas.layout(); - } - else - { + } else { // find out if there is any memory block for this debug target // and set up tab folder for the memory blocks IMemoryBlock blocks[] = MemoryViewUtil.getMemoryBlockManager().getMemoryBlocks(retrieve); - - if (blocks.length > 0) - { + + if (blocks.length > 0) { handleMemoryBlockSelection(null, blocks[0]); - } - else - { + } else { emptyFolder(); fTabFolderForDebugView.put(key, fEmptyTabFolder); fViewPaneCanvas.layout(); } } } - + // disable last view tab as it becomes hidden IMemoryViewTab newViewTab = getTopMemoryTab(); - if (lastViewTab != null && lastViewTab != newViewTab) - { + if (lastViewTab != null && lastViewTab != newViewTab) { lastViewTab.setEnabled(false); } - if (newViewTab != null) - { + if (newViewTab != null) { // if new view tab is not already enabled, enable it - if (!newViewTab.isEnabled()) - { + if (!newViewTab.isEnabled()) { // if the view tab is visible, enable it - if (fVisible) - { + if (fVisible) { newViewTab.setEnabled(fVisible); - } + } } - + // should only change selection if the new view tab is different - if (lastViewTab != newViewTab) + if (lastViewTab != newViewTab) { setRenderingSelection(newViewTab.getRendering()); - } - //set toolbar actions enabled/disabled + } + } + // set toolbar actions enabled/disabled updateToolBarActionsEnablement(); } - + + @Override protected void addListeners() { super.addListeners(); - - // must directly listen for selection events from parent's selection provider - // to ensure that we get the selection event from the tree viewer pane even + + // must directly listen for selection events from parent's selection + // provider + // to ensure that we get the selection event from the tree viewer pane + // even // if the view does not have focuse fParent.getSite().getSelectionProvider().addSelectionChangedListener(this); } + + @Override protected void removeListeners() { super.removeListeners(); fParent.getSite().getSelectionProvider().removeSelectionChangedListener(this); } - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt + * .events.SelectionEvent) */ + @Override public void widgetSelected(SelectionEvent e) { - - if (getTopMemoryTab() == null) + + if (getTopMemoryTab() == null) { return; - + } + IMemoryRendering rendering = getTopMemoryTab().getRendering(); - - if (rendering != null) - { + + if (rendering != null) { fSelectionProvider.setSelection(new StructuredSelection(rendering)); } - + } - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse + * .swt.events.SelectionEvent) */ + @Override public void widgetDefaultSelected(SelectionEvent e) { } - + + @Override public Object getCurrentSelection() { - if (getTopMemoryTab() != null) - if (getTopMemoryTab().getRendering() != null) + if (getTopMemoryTab() != null) { + if (getTopMemoryTab().getRendering() != null) { return getTopMemoryTab().getRendering(); + } + } return null; } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see com.ibm.debug.extended.ui.IMemoryView#getAllViewTabs() */ + @Override public IMemoryViewTab[] getAllViewTabs() { - + // otherwise, find the view tab to display CTabFolder folder = (CTabFolder) fStackLayout.topControl; CTabItem[] items = folder.getItems(); - + IMemoryViewTab[] viewTabs = new IMemoryViewTab[folder.getItemCount()]; - - for(int i=0; i<items.length; i++){ - viewTabs[i] = (IMemoryViewTab)items[i].getData(); + + for (int i = 0; i < items.length; i++) { + viewTabs[i] = (IMemoryViewTab) items[i].getData(); } - + return viewTabs; } - /* (non-Javadoc) - * @see com.ibm.debug.extended.ui.IMemoryView#moveToTop(com.ibm.debug.extended.ui.IMemoryViewTab) + /* + * (non-Javadoc) + * @see + * com.ibm.debug.extended.ui.IMemoryView#moveToTop(com.ibm.debug.extended + * .ui.IMemoryViewTab) */ + @Override public void moveToTop(IMemoryViewTab viewTab) { - + IMemoryViewTab lastViewTab = getTopMemoryTab(); - - if (viewTab == lastViewTab) + + if (viewTab == lastViewTab) { return; - + } + // otherwise, find the view tab to display CTabFolder folder = (CTabFolder) fStackLayout.topControl; CTabItem[] items = folder.getItems(); for (int i = 0; i < items.length; i++) { - IMemoryViewTab tab = - (IMemoryViewTab) items[i].getData(); + IMemoryViewTab tab = (IMemoryViewTab) items[i].getData(); if (viewTab == tab) { boolean isEnabled = lastViewTab.isEnabled(); @@ -756,166 +777,166 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory // switch to that viewTab lastViewTab.setEnabled(false); folder.setSelection(i); - + setRenderingSelection(tab.getRendering()); - + getTopMemoryTab().setEnabled(isEnabled && fVisible); break; } } } - - private CTabFolder createTabFolder(Composite parent) - { + + private CTabFolder createTabFolder(Composite parent) { CTabFolder folder = new CTabFolder(parent, SWT.NO_REDRAW_RESIZE | SWT.NO_TRIM | SWT.FLAT); - + ColorRegistry reg = JFaceResources.getColorRegistry(); Color c1 = reg.get("org.eclipse.ui.workbench.ACTIVE_TAB_BG_START"), //$NON-NLS-1$ - c2 = reg.get("org.eclipse.ui.workbench.ACTIVE_TAB_BG_END"); //$NON-NLS-1$ - folder.setSelectionBackground(new Color[] {c1, c2}, new int[] {100}, true); + c2 = reg.get("org.eclipse.ui.workbench.ACTIVE_TAB_BG_END"); //$NON-NLS-1$ + folder.setSelectionBackground(new Color[] { c1, c2 }, new int[] { 100 }, true); folder.setSelectionForeground(reg.get("org.eclipse.ui.workbench.ACTIVE_TAB_TEXT_COLOR")); //$NON-NLS-1$ folder.setSimple(PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS)); folder.setBorderVisible(true); folder.setFont(fViewPaneCanvas.getFont()); - + folder.addCTabFolder2Listener(new CTabFolder2Adapter() { + @Override public void close(CTabFolderEvent event) { - if(event.item.getData() instanceof MemoryViewTab) + if (event.item.getData() instanceof MemoryViewTab) { RenderingViewPane.this.removeMemoryRendering(((MemoryViewTab) event.item.getData()).getRendering()); + } event.doit = false; } }); return folder; } + @Override public void restoreViewPane() { - + // get current selection from memory view - + ISelection selection = null; - if (fParent.getSite().getSelectionProvider() != null) + if (fParent.getSite().getSelectionProvider() != null) { selection = fParent.getSite().getSelectionProvider().getSelection(); - + } + IMemoryBlock memoryBlock = null; - if (selection != null) - { + if (selection != null) { memoryBlock = getMemoryBlock(selection); } - - if (memoryBlock == null) - { + + if (memoryBlock == null) { // get selection from this view selection = fSelectionProvider.getSelection(); - - if (MemoryViewUtil.isValidSelection(selection)) - { - Object elem = ((IStructuredSelection)selection).getFirstElement(); - if (!(elem instanceof IMemoryBlock)) + if (MemoryViewUtil.isValidSelection(selection)) { + Object elem = ((IStructuredSelection) selection).getFirstElement(); + + if (!(elem instanceof IMemoryBlock)) { return; - - memoryBlock = (IMemoryBlock)elem; + } + + memoryBlock = (IMemoryBlock) elem; } } - - if (memoryBlock == null) - { + + if (memoryBlock == null) { // get a memory block from current debug context IAdaptable context = DebugUITools.getPartDebugContext(fParent.getSite()); - if (context != null) - { + if (context != null) { IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); - if (retrieval != null) - { + if (retrieval != null) { IMemoryBlock[] blocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(retrieval); - if (blocks.length > 0) + if (blocks.length > 0) { memoryBlock = blocks[0]; + } } } } - - if (memoryBlock != null) - { - if (!fTabFolderForMemoryBlock.containsKey(memoryBlock)) - { + + if (memoryBlock != null) { + if (!fTabFolderForMemoryBlock.containsKey(memoryBlock)) { // create tab folder if a tab folder does not already exist // for the memory block CTabFolder folder = createTabFolder(fViewPaneCanvas); - + fTabFolderForMemoryBlock.put(memoryBlock, folder); fMemoryBlockFromTabFolder.put(folder, memoryBlock); - setTabFolder((CTabFolder)fTabFolderForMemoryBlock.get(memoryBlock)); + setTabFolder(fTabFolderForMemoryBlock.get(memoryBlock)); IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(memoryBlock); - if (retrieval != null) + if (retrieval != null) { fTabFolderForDebugView.put(MemoryViewUtil.getHashCode(retrieval), fTabFolderForMemoryBlock.get(memoryBlock)); - else + } else { DebugUIPlugin.logErrorMessage("Memory block retrieval for memory block is null."); //$NON-NLS-1$ - + } + fViewPaneCanvas.layout(); fAddedMemoryBlocks.add(memoryBlock); - - // every time we create a folder, we have to create a CreateRendering + + // every time we create a folder, we have to create a + // CreateRendering newCreateRenderingForFolder(memoryBlock, folder); } - - if (fTabFolderForMemoryBlock.containsKey(memoryBlock)) - { - CTabFolder toDisplay = (CTabFolder)fTabFolderForMemoryBlock.get(memoryBlock); - - if (toDisplay != null) - { + + if (fTabFolderForMemoryBlock.containsKey(memoryBlock)) { + CTabFolder toDisplay = fTabFolderForMemoryBlock.get(memoryBlock); + + if (toDisplay != null) { setTabFolder(toDisplay); IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(memoryBlock); - - if (retrieval != null) + + if (retrieval != null) { fTabFolderForDebugView.put(MemoryViewUtil.getHashCode(retrieval), toDisplay); - else + } else { DebugUIPlugin.logErrorMessage("Memory block retrieval is null for memory block."); //$NON-NLS-1$ - + } + fViewPaneCanvas.layout(); - + // restore view tabs IMemoryRendering[] renderings = fRenderingMgr.getRenderingsFromMemoryBlock(memoryBlock); - + // if only CreateRendering is present, restore renderings - if (isRestoreViewTabs(toDisplay)) - { + if (isRestoreViewTabs(toDisplay)) { restoreViewTabs(renderings); } } } - + // disable current storag block - + IMemoryViewTab top = getTopMemoryTab(); - - if (top != null) + + if (top != null) { top.setEnabled(fVisible); + } } } - + + @Override public void dispose() { super.dispose(); - + fTabFolderForMemoryBlock.clear(); fTabFolderForMemoryBlock = null; - + fMemoryBlockFromTabFolder.clear(); fMemoryBlockFromTabFolder = null; - + fRenderingMgr.dispose(); fRenderingMgr = null; - + fAddedMemoryBlocks.clear(); fAddedRenderings.clear(); - } - + } + public Control createViewPane(Composite parent, String paneId, String label, boolean canAddRendering, boolean canRemoveRendering) { return doCreateViewPane(parent, paneId, label, canAddRendering, canRemoveRendering); } - - public Control createViewPane(Composite parent, String paneId, String label) { + + @Override + public Control createViewPane(Composite parent, String paneId, String label) { return doCreateViewPane(parent, paneId, label, true, true); } @@ -927,266 +948,298 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory * @param canRemoveRendering * @return */ - private Control doCreateViewPane(Composite parent, String paneId, String label, boolean canAddRendering, - boolean canRemoveRendering) { - Control control = super.createViewPane(parent, paneId, label); + private Control doCreateViewPane(Composite parent, String paneId, String label, boolean canAddRendering, boolean canRemoveRendering) { + Control control = super.createViewPane(parent, paneId, label); fCanAddRendering = canAddRendering; fCanRemoveRendering = canRemoveRendering; fRenderingMgr = new ViewPaneRenderingMgr(this); PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IDebugUIConstants.PLUGIN_ID + ".MemoryRenderingView_context"); //$NON-NLS-1$ return control; } - + + @Override public IAction[] getActions() { return new IAction[0]; } - - // enable/disable toolbar action - protected void updateToolBarActionsEnablement() - { + + // enable/disable toolbar action + protected void updateToolBarActionsEnablement() { } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.AbstractMemoryViewPane#emptyFolder() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.AbstractMemoryViewPane#emptyFolder + * () */ + @Override protected void emptyFolder() { super.emptyFolder(); updateToolBarActionsEnablement(); fSelectionProvider.setSelection(AbstractMemoryViewPane.EMPTY); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IRenderingViewPane#addMemoryRendering(org.eclipse.debug.internal.ui.views.memory.IMemoryRendering) + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.ui.views.memory.IRenderingViewPane# + * addMemoryRendering + * (org.eclipse.debug.internal.ui.views.memory.IMemoryRendering) */ + @Override public void addMemoryRendering(IMemoryRendering rendering) { - - if (rendering == null) + + if (rendering == null) { return; + } memoryBlockRenderingAdded(rendering); fRenderingMgr.addMemoryBlockRendering(rendering); - + } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IRenderingViewPane#removeMemoryRendering(org.eclipse.debug.internal.ui.views.memory.IMemoryRendering) + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.ui.views.memory.IRenderingViewPane# + * removeMemoryRendering + * (org.eclipse.debug.internal.ui.views.memory.IMemoryRendering) */ + @Override public void removeMemoryRendering(IMemoryRendering rendering) { - - if (rendering == null) + + if (rendering == null) { return; - + } + memoryBlockRenderingRemoved(rendering); - - if (fRenderingMgr != null) + + if (fRenderingMgr != null) { fRenderingMgr.removeMemoryBlockRendering(rendering); - + } + } - - private RenderingViewPane getInstance() - { + + private RenderingViewPane getInstance() { return this; } - - private IMemoryBlock getMemoryBlock(ISelection selection) - { - if (!(selection instanceof IStructuredSelection)) + + private IMemoryBlock getMemoryBlock(ISelection selection) { + if (!(selection instanceof IStructuredSelection)) { return null; + } - //only single selection of PICLDebugElements is allowed for this action - if (selection.isEmpty() || ((IStructuredSelection)selection).size() > 1) - { + // only single selection of PICLDebugElements is allowed for this action + if (selection.isEmpty() || ((IStructuredSelection) selection).size() > 1) { return null; } - Object elem = ((IStructuredSelection)selection).getFirstElement(); - - if (elem instanceof IMemoryBlock) - return (IMemoryBlock)elem; - else if (elem instanceof IMemoryRendering) - return ((IMemoryRendering)elem).getMemoryBlock(); - else + Object elem = ((IStructuredSelection) selection).getFirstElement(); + + if (elem instanceof IMemoryBlock) { + return (IMemoryBlock) elem; + } else if (elem instanceof IMemoryRendering) { + return ((IMemoryRendering) elem).getMemoryBlock(); + } else { return null; + } } - - private void deactivateRendering(IMemoryViewTab viewTab) - { - if (viewTab == null) + + private void deactivateRendering(IMemoryViewTab viewTab) { + if (viewTab == null) { return; + } - if (!viewTab.isDisposed()) - { + if (!viewTab.isDisposed()) { viewTab.getRendering().deactivated(); } } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.IRenderingViewPane#getMemoryRenderingSite() + /* + * (non-Javadoc) + * @see org.eclipse.debug.internal.ui.views.memory.IRenderingViewPane# + * getMemoryRenderingSite() */ + @Override public IMemoryRenderingSite getMemoryRenderingSite() { return fRenderingSite; } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRenderingContainer#getId() */ + @Override public String getId() { return getPaneId(); } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingContainer#getRenderings() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.memory.IMemoryRenderingContainer#getRenderings() */ + @Override public IMemoryRendering[] getRenderings() { return fRenderingMgr.getRenderings(); } - /* (non-Javadoc) - * @see org.eclipse.debug.ui.memory.IMemoryRenderingContainer#getActiveRendering() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.ui.memory.IMemoryRenderingContainer#getActiveRendering + * () */ + @Override public IMemoryRendering getActiveRendering() { - if (getTopMemoryTab() == null) + if (getTopMemoryTab() == null) { return null; + } return getTopMemoryTab().getRendering(); } - + /** * Reset the memory renderings within this view pane. - * @param memoryBlock - reset renderings associated with the given memory block - * @param resetVisible - reset what's currently visible if the parameter is true. - * Otherwise, the view pane will reset all renderings associated with the given - * memory block. + * + * @param memoryBlock - reset renderings associated with the given memory + * block + * @param resetVisible - reset what's currently visible if the parameter is + * true. Otherwise, the view pane will reset all renderings + * associated with the given memory block. */ - public void resetRenderings(IMemoryBlock memoryBlock, boolean resetVisible) - { + public void resetRenderings(IMemoryBlock memoryBlock, boolean resetVisible) { // if we only reset what's visible and the view pane is not visible // do nothing. - if (resetVisible && !isVisible()) + if (resetVisible && !isVisible()) { return; - - if(resetVisible) - { + } + + if (resetVisible) { IMemoryRendering rendering = getActiveRendering(); - if (rendering != null) - { - if (rendering.getMemoryBlock() == memoryBlock) - { - if (rendering instanceof IResettableMemoryRendering) - { - IResettableMemoryRendering resettableRendering = (IResettableMemoryRendering)rendering; + if (rendering != null) { + if (rendering.getMemoryBlock() == memoryBlock) { + if (rendering instanceof IResettableMemoryRendering) { + IResettableMemoryRendering resettableRendering = (IResettableMemoryRendering) rendering; try { resettableRendering.resetRendering(); } catch (DebugException e) { // do not pop up error message - // error message is annoying where there are multiple rendering + // error message is annoying where there are + // multiple rendering // panes and renderings to reset } } } } - } - else - { + } else { // get all renderings associated with the given memory block IMemoryRendering[] renderings = fRenderingMgr.getRenderingsFromMemoryBlock(memoryBlock); - + // back up current synchronization provider IMemoryRendering originalProvider = null; IMemoryRenderingSynchronizationService service = getMemoryRenderingSite().getSynchronizationService(); - if (service != null) + if (service != null) { originalProvider = service.getSynchronizationProvider(); - - for (int i=0; i<renderings.length; i++) - { - if (renderings[i] instanceof IResettableMemoryRendering) - { + } + + for (int i = 0; i < renderings.length; i++) { + if (renderings[i] instanceof IResettableMemoryRendering) { try { - - // This is done to allow user to select multiple memory monitors and + + // This is done to allow user to select multiple memory + // monitors and // reset their renderings. - // In this case, a hidden rendering will not be the sync provider to the sync - // service. When the reset happens, the top visible address and selected - // address is not updated in the sync service. When the rendering later - // becomes visible, the rendering gets the sync info from the sync service - // and will try to sync up with old information, giving user the impression - // that the rendering was never reset. By forcing the rendering that we - // are trying to reset as the synchronization provider, we ensure that - // the rendering is able to update its sync info even though the rendering + // In this case, a hidden rendering will not be the sync + // provider to the sync + // service. When the reset happens, the top visible + // address and selected + // address is not updated in the sync service. When the + // rendering later + // becomes visible, the rendering gets the sync info + // from the sync service + // and will try to sync up with old information, giving + // user the impression + // that the rendering was never reset. By forcing the + // rendering that we + // are trying to reset as the synchronization provider, + // we ensure that + // the rendering is able to update its sync info even + // though the rendering // is currently hidden. - if (service != null) + if (service != null) { service.setSynchronizationProvider(renderings[i]); - ((IResettableMemoryRendering)renderings[i]).resetRendering(); + } + ((IResettableMemoryRendering) renderings[i]).resetRendering(); } catch (DebugException e) { // do not pop up error message - // error message is annoying where there are multiple rendering + // error message is annoying where there are multiple + // rendering // panes and renderings to reset } } } - + // restore synchronization provider - if (service != null) + if (service != null) { service.setSynchronizationProvider(originalProvider); + } } } - - - public void showCreateRenderingTab() - { + public void showCreateRenderingTab() { IMemoryRendering activeRendering = RenderingViewPane.this.getActiveRendering(); - if(activeRendering == null) + if (activeRendering == null) { return; - + } + IMemoryBlock memoryblk = activeRendering.getMemoryBlock(); - final CTabFolder tabFolder = (CTabFolder) fTabFolderForMemoryBlock.get(memoryblk); - if (tabFolder != null) - { + final CTabFolder tabFolder = fTabFolderForMemoryBlock.get(memoryblk); + if (tabFolder != null) { Display.getDefault().asyncExec(new Runnable() { - public void run() - { + @Override + public void run() { int index = getIndexOfCreateRenderingTab(tabFolder); - if (index >= 0) + if (index >= 0) { tabFolder.setSelection(index); + } } }); } } public void contextActivated(final ISelection selection) { - - UIJob job = new UIJob("contextActivated"){ //$NON-NLS-1$ - public IStatus runInUIThread(IProgressMonitor monitor) - { - if (isDisposed()) + + UIJob job = new UIJob("contextActivated") { //$NON-NLS-1$ + @Override + public IStatus runInUIThread(IProgressMonitor monitor) { + if (isDisposed()) { return Status.OK_STATUS; - + } + IMemoryViewTab lastViewTab = getTopMemoryTab(); - - if (MemoryViewUtil.isValidSelection(selection)) - { - if (!(selection instanceof IStructuredSelection)) + + if (MemoryViewUtil.isValidSelection(selection)) { + if (!(selection instanceof IStructuredSelection)) { return Status.OK_STATUS; + } - Object elem = ((IStructuredSelection)selection).getFirstElement(); - - if (elem instanceof IAdaptable) - { - handleDebugElementSelection(lastViewTab, (IAdaptable)elem); + Object elem = ((IStructuredSelection) selection).getFirstElement(); + + if (elem instanceof IAdaptable) { + handleDebugElementSelection(lastViewTab, (IAdaptable) elem); } - } - else - { - if (lastViewTab != null) + } else { + if (lastViewTab != null) { lastViewTab.setEnabled(false); - - if (fStackLayout.topControl != fEmptyTabFolder) + } + + if (fStackLayout.topControl != fEmptyTabFolder) { emptyFolder(); - + } + } return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } @@ -1195,31 +1248,29 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory * @param memory */ private CTabFolder createFolderForMemoryBlock(IMemoryBlock memory) { - CTabFolder folder = createTabFolder(fViewPaneCanvas); - - fTabFolderForMemoryBlock.put(memory, folder); - fMemoryBlockFromTabFolder.put(folder, memory); - - IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(memory); - if (retrieval != null) - { - fTabFolderForDebugView.put(MemoryViewUtil.getHashCode(retrieval), folder); - } - else { - DebugUIPlugin.logErrorMessage("Memory block retrieval for memory block is null"); //$NON-NLS-1$ - } - - newCreateRenderingForFolder(memory, folder); - - return folder; + CTabFolder folder = createTabFolder(fViewPaneCanvas); + + fTabFolderForMemoryBlock.put(memory, folder); + fMemoryBlockFromTabFolder.put(folder, memory); + + IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(memory); + if (retrieval != null) { + fTabFolderForDebugView.put(MemoryViewUtil.getHashCode(retrieval), folder); + } else { + DebugUIPlugin.logErrorMessage("Memory block retrieval for memory block is null"); //$NON-NLS-1$ + } + + newCreateRenderingForFolder(memory, folder); + + return folder; } - private void newCreateRenderingForFolder(IMemoryBlock memory, - CTabFolder folder) { - - if (!canAddRendering()) + private void newCreateRenderingForFolder(IMemoryBlock memory, CTabFolder folder) { + + if (!canAddRendering()) { return; - + } + CTabItem newItem = new CTabItem(folder, SWT.NONE); CreateRendering rendering = new CreateRendering(getInstance()); rendering.init(getInstance(), memory); @@ -1227,30 +1278,33 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory folder.setSelection(0); } - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener#contextEvent(org.eclipse.debug.internal.ui.contexts.provisional.DebugContextEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.contexts.provisional.IDebugContextListener + * #contextEvent + * (org.eclipse.debug.internal.ui.contexts.provisional.DebugContextEvent) */ + @Override public void debugContextChanged(DebugContextEvent event) { if ((event.getFlags() & DebugContextEvent.ACTIVATED) > 0) { contextActivated(event.getContext()); - } + } } - + /** * @return whether this container allows user to add rendering manually * @since 3.4 */ - public boolean canAddRendering() - { + public boolean canAddRendering() { return fCanAddRendering; } - + /** * @return whether this container allows user to remove rendering manually * @since 3.4 */ - public boolean canRemoveRendering() - { + public boolean canRemoveRendering() { return fCanRemoveRendering; } @@ -1261,8 +1315,9 @@ public class RenderingViewPane extends AbstractMemoryViewPane implements IMemory */ private CTabItem createTab(CTabFolder tabFolder, int index) { int swtStyle = SWT.CLOSE; - if (!canRemoveRendering()) + if (!canRemoveRendering()) { swtStyle = SWT.NONE; + } CTabItem tab = new CTabItem(tabFolder, swtStyle, index); return tab; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockAction.java index ebcb6801f..04cb9bba0 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockAction.java @@ -26,26 +26,30 @@ import org.eclipse.ui.IViewActionDelegate; import org.eclipse.ui.IViewPart; /** - * The popup menu action for a memory rendering used to reset the current selection - * to the default first memory position + * The popup menu action for a memory rendering used to reset the current + * selection to the default first memory position * * @since 3.2.0 */ -public class ResetMemoryBlockAction implements IViewActionDelegate{ +public class ResetMemoryBlockAction implements IViewActionDelegate { private IViewPart fView; - private ArrayList fSelectedMB = new ArrayList(); + private ArrayList<Object> fSelectedMB = new ArrayList<Object>(); - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) */ + @Override public void init(IViewPart view) { fView = view; } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { if (fSelectedMB.isEmpty()) { return; @@ -55,25 +59,29 @@ public class ResetMemoryBlockAction implements IViewActionDelegate{ if (resetPref.equals(IDebugPreferenceConstants.RESET_VISIBLE)) { resetVisible = true; } - Iterator iter = fSelectedMB.iterator(); - while(iter.hasNext()) { - IMemoryBlock mb = (IMemoryBlock)iter.next(); + Iterator<Object> iter = fSelectedMB.iterator(); + while (iter.hasNext()) { + IMemoryBlock mb = (IMemoryBlock) iter.next(); if (fView instanceof MemoryView) { - MemoryView memView = (MemoryView)fView; + MemoryView memView = (MemoryView) fView; IMemoryRenderingContainer[] containers = memView.getMemoryRenderingContainers(); - - for (int i=0; i<containers.length; i++) { + + for (int i = 0; i < containers.length; i++) { if (containers[i] instanceof RenderingViewPane) { - ((RenderingViewPane)containers[i]).resetRenderings(mb, resetVisible); + ((RenderingViewPane) containers[i]).resetRenderings(mb, resetVisible); } } } } } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action + * .IAction, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IAction action, ISelection selection) { action.setEnabled(!selection.isEmpty()); if (selection instanceof IStructuredSelection) { diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockPreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockPreferencePage.java index 1aa89987e..01dc1515b 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockPreferencePage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ResetMemoryBlockPreferencePage.java @@ -21,21 +21,27 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.PlatformUI; -public class ResetMemoryBlockPreferencePage extends FieldEditorPreferencePage{ - - public ResetMemoryBlockPreferencePage() - { +public class ResetMemoryBlockPreferencePage extends FieldEditorPreferencePage { + + public ResetMemoryBlockPreferencePage() { super(FieldEditorPreferencePage.GRID); setPreferenceStore(DebugUITools.getPreferenceStore()); setTitle(DebugUIMessages.ResetMemoryBlockPreferencePage_0); } - + @Override protected void createFieldEditors() { - RadioGroupFieldEditor editor = new RadioGroupFieldEditor(IDebugPreferenceConstants.PREF_RESET_MEMORY_BLOCK, DebugUIMessages.ResetMemoryBlockPreferencePage_1, 1, new String[][] {{DebugUIMessages.ResetMemoryBlockPreferencePage_2, IDebugPreferenceConstants.RESET_VISIBLE},{DebugUIMessages.ResetMemoryBlockPreferencePage_3, IDebugPreferenceConstants.RESET_ALL}}, getFieldEditorParent()); + RadioGroupFieldEditor editor = new RadioGroupFieldEditor(IDebugPreferenceConstants.PREF_RESET_MEMORY_BLOCK, DebugUIMessages.ResetMemoryBlockPreferencePage_1, 1, new String[][] { + { + DebugUIMessages.ResetMemoryBlockPreferencePage_2, + IDebugPreferenceConstants.RESET_VISIBLE }, + { + DebugUIMessages.ResetMemoryBlockPreferencePage_3, + IDebugPreferenceConstants.RESET_ALL } }, getFieldEditorParent()); addField(editor); } - + + @Override protected Control createContents(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IDebugUIConstants.PLUGIN_ID + ".resetMemoryMonitor_preference_page_context"); //$NON-NLS-1$ return super.createContents(parent); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RetargetAddMemoryBlockAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RetargetAddMemoryBlockAction.java index a0667815d..6eaed8d30 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RetargetAddMemoryBlockAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/RetargetAddMemoryBlockAction.java @@ -21,94 +21,79 @@ import org.eclipse.debug.ui.actions.IAddMemoryBlocksTarget; import org.eclipse.debug.ui.memory.IMemoryRenderingSite; /** - * This is the retargettable add memory block action in the Memory View. - * All AddMemoryBlock actions in the view will use this action to make sure - * that clients can override the "Add Memory Monitor" dialog. - * + * This is the retargettable add memory block action in the Memory View. All + * AddMemoryBlock actions in the view will use this action to make sure that + * clients can override the "Add Memory Monitor" dialog. + * */ public class RetargetAddMemoryBlockAction extends AddMemoryBlockAction { - public RetargetAddMemoryBlockAction(IMemoryRenderingSite site) - { + public RetargetAddMemoryBlockAction(IMemoryRenderingSite site) { super(site); } - - public RetargetAddMemoryBlockAction(IMemoryRenderingSite site, boolean addDefaultRenderings) - { + + public RetargetAddMemoryBlockAction(IMemoryRenderingSite site, boolean addDefaultRenderings) { super(site, addDefaultRenderings); } - - public RetargetAddMemoryBlockAction(String text, int style, IMemoryRenderingSite site) - { + + public RetargetAddMemoryBlockAction(String text, int style, IMemoryRenderingSite site) { super(text, style, site); } + @Override public void run() { - // get current selection from Debug View + // get current selection from Debug View Object debugContext = DebugUITools.getPartDebugContext(fSite.getSite()); IAddMemoryBlocksTarget target = getAddMemoryBlocksTarget(debugContext); - - if (target != null) - { + + if (target != null) { try { - if (target.supportsAddMemoryBlocks(getMemoryView())) - { + if (target.supportsAddMemoryBlocks(getMemoryView())) { target.addMemoryBlocks(getMemoryView(), getMemoryView().getSite().getSelectionProvider().getSelection()); - } - else + } else super.run(); } catch (CoreException e) { DebugUIPlugin.errorDialog(DebugUIPlugin.getShell(), ActionMessages.RetargetAddMemoryBlockAction_0, ActionMessages.RetargetAddMemoryBlockAction_1, e); } - } - else - { + } else { super.run(); } } + @Override protected void updateAction(Object debugContext) { - + try { IAddMemoryBlocksTarget target = getAddMemoryBlocksTarget(debugContext); - - if (target != null) - { - if (target.supportsAddMemoryBlocks(getMemoryView())) - { + + if (target != null) { + if (target.supportsAddMemoryBlocks(getMemoryView())) { if (getMemoryView().getSite().getSelectionProvider() != null) setEnabled(target.canAddMemoryBlocks(getMemoryView(), getMemoryView().getSite().getSelectionProvider().getSelection())); else super.updateAction(debugContext); - } - else + } else super.updateAction(debugContext); - } - else - { + } else { super.updateAction(debugContext); } } catch (CoreException e) { DebugUIPlugin.log(e); } } - - private IAddMemoryBlocksTarget getAddMemoryBlocksTarget(Object debugContext) - { + + private IAddMemoryBlocksTarget getAddMemoryBlocksTarget(Object debugContext) { IMemoryBlockRetrieval standardMemRetrieval = MemoryViewUtil.getMemoryBlockRetrieval(debugContext); - + if (standardMemRetrieval == null) return null; - + IAddMemoryBlocksTarget target = null; - - if (standardMemRetrieval instanceof IAddMemoryBlocksTarget) - { + + if (standardMemRetrieval instanceof IAddMemoryBlocksTarget) { target = (IAddMemoryBlocksTarget) standardMemRetrieval; - } - else if (standardMemRetrieval instanceof IAdaptable) - { - target = (IAddMemoryBlocksTarget)((IAdaptable)standardMemRetrieval).getAdapter(IAddMemoryBlocksTarget.class); + } else if (standardMemRetrieval instanceof IAdaptable) { + target = (IAddMemoryBlocksTarget) ((IAdaptable) standardMemRetrieval).getAdapter(IAddMemoryBlocksTarget.class); } return target; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SetPaddedStringPreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SetPaddedStringPreferencePage.java index 559c20c63..8cd837bd7 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SetPaddedStringPreferencePage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SetPaddedStringPreferencePage.java @@ -9,7 +9,6 @@ * IBM Corporation - initial API and implementation *******************************************************************************/ - package org.eclipse.debug.internal.ui.views.memory; import org.eclipse.debug.internal.ui.DebugUIMessages; @@ -24,17 +23,17 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.ui.PlatformUI; public class SetPaddedStringPreferencePage extends FieldEditorPreferencePage { - + private StringFieldEditor fPaddedString; - public SetPaddedStringPreferencePage() - { + public SetPaddedStringPreferencePage() { super(FieldEditorPreferencePage.GRID); setPreferenceStore(DebugUITools.getPreferenceStore()); setTitle(DebugUIMessages.SetPaddedStringDialog_0); - + } + @Override protected void createFieldEditors() { fPaddedString = new StringFieldEditor(IDebugUIConstants.PREF_PADDED_STR, DebugUIMessages.SetPaddedStringPreferencePage_0, getFieldEditorParent()); fPaddedString.setEmptyStringAllowed(false); @@ -42,12 +41,14 @@ public class SetPaddedStringPreferencePage extends FieldEditorPreferencePage { addField(fPaddedString); } + @Override protected Label createDescriptionLabel(Composite parent) { Label label = new Label(parent, SWT.NONE); label.setText(DebugUIMessages.SetPaddedStringDialog_1); return label; } + @Override protected Control createContents(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IDebugUIConstants.PLUGIN_ID + ".SetPaddedStrDialog_context"); //$NON-NLS-1$ return super.createContents(parent); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SwitchMemoryBlockAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SwitchMemoryBlockAction.java index 3ce617599..8a07ecf15 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SwitchMemoryBlockAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SwitchMemoryBlockAction.java @@ -50,12 +50,13 @@ import org.eclipse.ui.progress.UIJob; import org.eclipse.ui.progress.WorkbenchJob; /** - * The switch memory block action, used + * The switch memory block action, used */ public class SwitchMemoryBlockAction extends Action implements IViewActionDelegate, IActionDelegate2 { /** - * A job that updates the enablement of the of the backing action delegate in the UI thread + * A job that updates the enablement of the of the backing action delegate + * in the UI thread * * @since 3.3.0 */ @@ -69,24 +70,27 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega setSystem(true); } - /* (non-Javadoc) - * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime + * .IProgressMonitor) */ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { if (fAction != null) { IAdaptable context = getDebugContext(); if (context != null) { IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); - + if (retrieval != null) { IMemoryBlock[] memoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(retrieval); fAction.setEnabled(memoryBlocks.length > 0); return Status.OK_STATUS; - } - else if (getViewer() != null) { + } else if (getViewer() != null) { Object input = getViewer().getInput(); if (input instanceof IMemoryBlockRetrieval) { - retrieval = (IMemoryBlockRetrieval)input; + retrieval = (IMemoryBlockRetrieval) input; IMemoryBlock[] memoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(retrieval); fAction.setEnabled(memoryBlocks.length > 0); return Status.OK_STATUS; @@ -98,49 +102,54 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega return Status.CANCEL_STATUS; } } - + private IViewPart fView; private MenuCreator fMenuCreator; private IAction fAction; private UpdateActionEnablementJob fUpdateJob = new UpdateActionEnablementJob(); - + /** * Memoryblock listener to update action delegate enablement */ private IMemoryBlockListener fListener = new IMemoryBlockListener() { + @Override public void memoryBlocksAdded(IMemoryBlock[] memory) { if (fAction != null) { fUpdateJob.schedule(); } } + @Override public void memoryBlocksRemoved(IMemoryBlock[] memory) { if (fAction != null) { fUpdateJob.schedule(); } } }; - + /** * Listens for debug context changes and updates action delegate enablement */ private IDebugContextListener fDebugContextListener = new IDebugContextListener() { + @Override public void debugContextChanged(DebugContextEvent event) { - if (fAction != null) { + if (fAction != null) { fUpdateJob.schedule(); } } }; - + /** * Switch tab folder for fMemoryBlock to the top in Memory Rendering View */ class SwitchToAction extends Action { private IMemoryBlock fMemoryblock; - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { if (fView == null) { return; @@ -153,89 +162,98 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega super(); if (buildLabel) { setText(DebugUIMessages.SwitchMemoryBlockAction_4); - Job job = new Job("SwtichToAction"){ //$NON-NLS-1$ + Job job = new Job("SwtichToAction") { //$NON-NLS-1$ + @Override protected IStatus run(IProgressMonitor monitor) { getLabels(memBlk); return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } fMemoryblock = memBlk; } - + public SwitchToAction(final IMemoryBlock memBlk, String label) { super(label); fMemoryblock = memBlk; } - + private void getLabels(final IMemoryBlock memBlk) { StringBuffer text = new StringBuffer(IInternalDebugCoreConstants.EMPTY_STRING); String label = new String(IInternalDebugCoreConstants.EMPTY_STRING); if (memBlk instanceof IMemoryBlockExtension) { - String expression = ((IMemoryBlockExtension)memBlk).getExpression(); + String expression = ((IMemoryBlockExtension) memBlk).getExpression(); if (expression == null) { expression = DebugUIMessages.SwitchMemoryBlockAction_0; } text.append(expression); - } - else { + } else { long address = memBlk.getStartAddress(); text.append(Long.toHexString(address)); } - + label = text.toString(); label = decorateLabel(memBlk, label); final String finalLabel = label; WorkbenchJob job = new WorkbenchJob("SwtichToAction Update Label") { //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { SwitchToAction.super.setText(finalLabel); return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); job.schedule(); } } - + /** * Menu creator for the action */ class MenuCreator implements IMenuCreator { Menu dropdown; - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.action.IMenuCreator#dispose() */ + @Override public void dispose() { if (dropdown != null) dropdown.dispose(); } - /* (non-Javadoc) - * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Control) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets + * .Control) */ + @Override public Menu getMenu(Control parent) { - if (dropdown != null) { + if (dropdown != null) { dropdown.dispose(); dropdown = null; } - if (dropdown == null) { - dropdown = new Menu(parent); + if (dropdown == null) { + dropdown = new Menu(parent); // get all memory blocks from tree viewer IMemoryBlock[] allMemoryBlocks = null; - + // get selection from memory view IMemoryBlock memoryBlock = getCurrentMemoryBlock(); - + Object context = getDebugContext(); - IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); + IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(context); if (retrieval != null) { allMemoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(retrieval); } if (allMemoryBlocks != null) { - for (int i=0; i<allMemoryBlocks.length; i++) { + for (int i = 0; i < allMemoryBlocks.length; i++) { SwitchToAction action = new SwitchToAction(allMemoryBlocks[i], true); if (allMemoryBlocks[i] == memoryBlock) { action.setChecked(true); @@ -249,59 +267,70 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega return dropdown; } - /* (non-Javadoc) - * @see org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets.Menu) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.action.IMenuCreator#getMenu(org.eclipse.swt.widgets + * .Menu) */ + @Override public Menu getMenu(Menu parent) { return null; } - - } - - /* (non-Javadoc) + + } + + /* + * (non-Javadoc) * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) */ + @Override public void init(IViewPart view) { fView = view; DebugUITools.getDebugContextManager().getContextService(fView.getViewSite().getWorkbenchWindow()).addDebugContextListener(fDebugContextListener); DebugPlugin.getDefault().getMemoryBlockManager().addListener(fListener); fUpdateJob.runInUIThread(new NullProgressMonitor()); } - + /** * Returns the current memory blocks tree viewer, or <code>null</code> + * * @return the memory blocks tree viewer or <code>null</code> */ private StructuredViewer getViewer() { if (fView instanceof MemoryView) { - MemoryView memView = (MemoryView)fView; + MemoryView memView = (MemoryView) fView; IMemoryViewPane pane = memView.getViewPane(MemoryBlocksTreeViewPane.PANE_ID); if (pane instanceof MemoryBlocksTreeViewPane) { - StructuredViewer viewer = ((MemoryBlocksTreeViewPane)pane).getViewer(); + StructuredViewer viewer = ((MemoryBlocksTreeViewPane) pane).getViewer(); return viewer; } } return null; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { switchToNext(); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.action.Action#run() */ + @Override public void run() { switchToNext(); } - private void switchToNext() { + private void switchToNext() { IAdaptable context = getDebugContext(); if (context instanceof IDebugElement) { - IDebugElement debugContext = (IDebugElement)context; + IDebugElement debugContext = (IDebugElement) context; IMemoryBlockRetrieval retrieval = MemoryViewUtil.getMemoryBlockRetrieval(debugContext); if (retrieval != null) { @@ -320,13 +349,13 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega IMemoryBlock current = getCurrentMemoryBlock(); int next = 0; if (current != null) { - for (int i=0; i<memoryBlocks.length; i++) { + for (int i = 0; i < memoryBlocks.length; i++) { if (memoryBlocks[i] == current) { - next = i+1; + next = i + 1; } } } - if (next > memoryBlocks.length-1) { + if (next > memoryBlocks.length - 1) { next = 0; } SwitchToAction switchAction = new SwitchToAction(memoryBlocks[next], false); @@ -334,14 +363,22 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega } } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action + * .IAction, org.eclipse.jface.viewers.ISelection) */ - public void selectionChanged(IAction action, ISelection selection) {} + @Override + public void selectionChanged(IAction action, ISelection selection) { + } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate2#init(org.eclipse.jface.action.IAction) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate2#init(org.eclipse.jface.action.IAction) */ + @Override public void init(IAction action) { fAction = action; fUpdateJob.runInUIThread(new NullProgressMonitor()); @@ -349,9 +386,11 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega action.setMenuCreator(fMenuCreator); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IActionDelegate2#dispose() */ + @Override public void dispose() { fAction = null; DebugPlugin.getDefault().getMemoryBlockManager().removeListener(fListener); @@ -361,15 +400,20 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega } } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate2#runWithEvent(org.eclipse.jface.action.IAction, org.eclipse.swt.widgets.Event) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate2#runWithEvent(org.eclipse.jface.action + * .IAction, org.eclipse.swt.widgets.Event) */ + @Override public void runWithEvent(IAction action, Event event) { switchToNext(); } /** * Returns the current memory block + * * @return the current memory block or <code>null</code> */ private IMemoryBlock getCurrentMemoryBlock() { @@ -378,15 +422,14 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega } ISelection memBlkSelection = fView.getSite().getSelectionProvider().getSelection(); IMemoryBlock memoryBlock = null; - - if (memBlkSelection != null) { - if (!memBlkSelection.isEmpty() && memBlkSelection instanceof IStructuredSelection) { - Object obj = ((IStructuredSelection)memBlkSelection).getFirstElement(); - if (obj instanceof IMemoryBlock) { - memoryBlock = (IMemoryBlock)obj; - } - else if (obj instanceof IMemoryRendering) { - memoryBlock = ((IMemoryRendering)obj).getMemoryBlock(); + + if (memBlkSelection != null) { + if (!memBlkSelection.isEmpty() && memBlkSelection instanceof IStructuredSelection) { + Object obj = ((IStructuredSelection) memBlkSelection).getFirstElement(); + if (obj instanceof IMemoryBlock) { + memoryBlock = (IMemoryBlock) obj; + } else if (obj instanceof IMemoryRendering) { + memoryBlock = ((IMemoryRendering) obj).getMemoryBlock(); } } } @@ -395,12 +438,13 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega /** * Decorate the label for the specified <code>IMemoryBlock</code> + * * @param memBlk * @param label * @return the decorated label for the specified <code>IMemoryBlock</code> */ private String decorateLabel(final IMemoryBlock memBlk, String label) { - ILabelDecorator decorator = (ILabelDecorator)memBlk.getAdapter(ILabelDecorator.class); + ILabelDecorator decorator = (ILabelDecorator) memBlk.getAdapter(ILabelDecorator.class); if (decorator != null) { label = decorator.decorateText(label, memBlk); } @@ -408,10 +452,10 @@ public class SwitchMemoryBlockAction extends Action implements IViewActionDelega } private IAdaptable getDebugContext() { - if (fView != null) { - return DebugUITools.getPartDebugContext(fView.getSite()); - } else { - return DebugUITools.getDebugContext(); - } + if (fView != null) { + return DebugUITools.getPartDebugContext(fView.getSite()); + } else { + return DebugUITools.getDebugContext(); + } } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SynchronizeInfo.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SynchronizeInfo.java index 974b876eb..80ea1e47e 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SynchronizeInfo.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/SynchronizeInfo.java @@ -16,99 +16,94 @@ import java.util.Hashtable; import org.eclipse.debug.core.model.IMemoryBlock; - /** - * Stores synchronization information for a memory block - * Each object of synchronization information contains a memory block, - * a list of views to be synchronized and a list of properties to be syncrhonized. - * The views are responsible for defining properties to be synchronized and notifying - * the synchronizer of properties changes. This is only for keeping track of - * values of synchronized properties and firing events when properties are changed. + * Stores synchronization information for a memory block Each object of + * synchronization information contains a memory block, a list of views to be + * synchronized and a list of properties to be syncrhonized. The views are + * responsible for defining properties to be synchronized and notifying the + * synchronizer of properties changes. This is only for keeping track of values + * of synchronized properties and firing events when properties are changed. * - * Memory block serves as a key for synchronization. Views displaying the same - * memory block can be synchronized. Views displaying different memory block + * Memory block serves as a key for synchronization. Views displaying the same + * memory block can be synchronized. Views displaying different memory block * cannot be synchronized. * * @since 3.0 */ -public class SynchronizeInfo -{ - private IMemoryBlock fBlock; // memory block blocked by the views - private Hashtable fProperties; // list of properties to be synchronized +public class SynchronizeInfo { + private IMemoryBlock fBlock; // memory block blocked by the views + private Hashtable<String, Object> fProperties; // list of properties to be + // synchronized /** * Create a new synchronization info object for the memory block + * * @param block */ - public SynchronizeInfo(IMemoryBlock block) - { + public SynchronizeInfo(IMemoryBlock block) { fBlock = block; - fProperties = new Hashtable(); + fProperties = new Hashtable<String, Object>(); } - - + /** * Set a property and its value to the info object + * * @param propertyId * @param value */ - public void setProperty(String propertyId, Object value) - { + public void setProperty(String propertyId, Object value) { if (propertyId == null) return; - + if (value == null) return; - + fProperties.put(propertyId, value); } - + /** * Returns the value of the property from the info object + * * @param propertyId * @return value of the property */ - public Object getProperty(String propertyId) - { + public Object getProperty(String propertyId) { if (propertyId == null) return null; - + Object value = fProperties.get(propertyId); - - return value; + + return value; } - + /** * @return all the property ids stored in this sync info object */ - public String[] getPropertyIds() - { + public String[] getPropertyIds() { if (fProperties == null) return new String[0]; - - Enumeration enumeration = fProperties.keys(); - ArrayList ids = new ArrayList(); - - while (enumeration.hasMoreElements()) - { + + Enumeration<String> enumeration = fProperties.keys(); + ArrayList<String> ids = new ArrayList<String>(); + + while (enumeration.hasMoreElements()) { ids.add(enumeration.nextElement()); } - - return (String[])ids.toArray(new String[ids.size()]); + + return ids.toArray(new String[ids.size()]); } - + /** * Clean up the synchronization info object */ - public void delete() - { - - if (fProperties != null){ + public void delete() { + + if (fProperties != null) { fProperties.clear(); fProperties = null; } - - if (fBlock != null){ + + if (fBlock != null) { fBlock = null; } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleMemoryMonitorsAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleMemoryMonitorsAction.java index 8595c838f..429b22e29 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleMemoryMonitorsAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleMemoryMonitorsAction.java @@ -10,17 +10,21 @@ *******************************************************************************/ package org.eclipse.debug.internal.ui.views.memory; - /** * Toggles the visiblity of a view pane. + * * @since 3.1 - * + * */ public class ToggleMemoryMonitorsAction extends ToggleViewPaneAction { - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.ToggleViewPaneAction#getPaneId() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.ToggleViewPaneAction#getPaneId + * () */ + @Override public String getPaneId() { return MemoryBlocksTreeViewPane.PANE_ID; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleSplitPaneAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleSplitPaneAction.java index 68d1474c6..bd99fa281 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleSplitPaneAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleSplitPaneAction.java @@ -14,14 +14,19 @@ import org.eclipse.debug.ui.IDebugUIConstants; /** * Toggles the visibility of the rendering view pane 2. + * * @since 3.1 - * + * */ public class ToggleSplitPaneAction extends ToggleViewPaneAction { - /* (non-Javadoc) - * @see org.eclipse.debug.internal.ui.views.memory.ToggleViewPaneAction#getPaneId() + /* + * (non-Javadoc) + * @see + * org.eclipse.debug.internal.ui.views.memory.ToggleViewPaneAction#getPaneId + * () */ + @Override public String getPaneId() { return IDebugUIConstants.ID_RENDERING_VIEW_PANE_2; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleViewPaneAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleViewPaneAction.java index 645c2d706..c340b3b76 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleViewPaneAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ToggleViewPaneAction.java @@ -24,49 +24,56 @@ import org.eclipse.ui.IViewPart; /** * @since 3.1 */ -abstract public class ToggleViewPaneAction extends Action implements IViewActionDelegate, IActionDelegate2, IPropertyChangeListener { +abstract public class ToggleViewPaneAction extends Action implements IViewActionDelegate, IActionDelegate2, IPropertyChangeListener { MemoryView fView; IAction fAction; - - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) */ + @Override public void init(IViewPart view) { - if (view instanceof MemoryView) - { - fView = (MemoryView)view; + if (view instanceof MemoryView) { + fView = (MemoryView) view; } } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { - + if (fView == null) return; - + fView.showViewPane(!fView.isViewPaneVisible(getPaneId()), getPaneId()); - + if (fView.isViewPaneVisible(getPaneId())) action.setChecked(true); else action.setChecked(false); - + } - + + @Override public void run() { if (fView == null) return; - + fView.showViewPane(!fView.isViewPaneVisible(getPaneId()), getPaneId()); } - /* (non-Javadoc) - * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action + * .IAction, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IAction action, ISelection selection) { if (fView.isViewPaneVisible(getPaneId())) action.setChecked(true); @@ -74,28 +81,31 @@ abstract public class ToggleViewPaneAction extends Action implements IViewActio action.setChecked(false); } + @Override public void dispose() { DebugUITools.getPreferenceStore().removePropertyChangeListener(this); } + @Override public void init(IAction action) { fAction = action; DebugUITools.getPreferenceStore().addPropertyChangeListener(this); } + @Override public void runWithEvent(IAction action, Event event) { run(action); } + @Override public void propertyChange(PropertyChangeEvent event) { - if (fView != null && fAction != null) - { + if (fView != null && fAction != null) { if (fView.isViewPaneVisible(getPaneId())) fAction.setChecked(true); else fAction.setChecked(false); } } - - abstract public String getPaneId(); + + abstract public String getPaneId(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneOrientationAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneOrientationAction.java index 5c7f26f37..ce31a0cb5 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneOrientationAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneOrientationAction.java @@ -19,39 +19,37 @@ import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.jface.action.Action; import org.eclipse.ui.PlatformUI; -class ViewPaneOrientationAction extends Action -{ - private MemoryView fView; - private int fOrientation; +class ViewPaneOrientationAction extends Action { + private MemoryView fView; + private int fOrientation; - ViewPaneOrientationAction(MemoryView view, int orientation) - { - super(IInternalDebugCoreConstants.EMPTY_STRING, AS_RADIO_BUTTON); - fView = view; - fOrientation = orientation; - - if (orientation == MemoryView.HORIZONTAL_VIEW_ORIENTATION) { - setText(DebugUIMessages.ViewPaneOrientationAction_0); - setToolTipText(DebugUIMessages.ViewPaneOrientationAction_1); - setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_DETAIL_PANE_RIGHT)); - setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_DETAIL_PANE_RIGHT)); - setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IDebugUIConstants.IMG_LCL_DETAIL_PANE_RIGHT)); - } else if (orientation == MemoryView.VERTICAL_VIEW_ORIENTATION) { - setText(DebugUIMessages.ViewPaneOrientationAction_2); - setToolTipText(DebugUIMessages.ViewPaneOrientationAction_3); - setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_DETAIL_PANE_UNDER)); - setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_DETAIL_PANE_UNDER)); - setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IDebugUIConstants.IMG_LCL_DETAIL_PANE_UNDER)); - } - PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugHelpContextIds.MEMORY_VIEW_PANE_ORIENTATION_ACTION); - } + ViewPaneOrientationAction(MemoryView view, int orientation) { + super(IInternalDebugCoreConstants.EMPTY_STRING, AS_RADIO_BUTTON); + fView = view; + fOrientation = orientation; - public void run() { - fView.setViewPanesOrientation(fOrientation); - } - - public int getOrientation() - { - return fOrientation; + if (orientation == MemoryView.HORIZONTAL_VIEW_ORIENTATION) { + setText(DebugUIMessages.ViewPaneOrientationAction_0); + setToolTipText(DebugUIMessages.ViewPaneOrientationAction_1); + setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_DETAIL_PANE_RIGHT)); + setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_DETAIL_PANE_RIGHT)); + setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IDebugUIConstants.IMG_LCL_DETAIL_PANE_RIGHT)); + } else if (orientation == MemoryView.VERTICAL_VIEW_ORIENTATION) { + setText(DebugUIMessages.ViewPaneOrientationAction_2); + setToolTipText(DebugUIMessages.ViewPaneOrientationAction_3); + setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_DETAIL_PANE_UNDER)); + setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_DETAIL_PANE_UNDER)); + setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IDebugUIConstants.IMG_LCL_DETAIL_PANE_UNDER)); } + PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugHelpContextIds.MEMORY_VIEW_PANE_ORIENTATION_ACTION); + } + + @Override + public void run() { + fView.setViewPanesOrientation(fOrientation); + } + + public int getOrientation() { + return fOrientation; } +} diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneRenderingMgr.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneRenderingMgr.java index e20a18ee3..b16085334 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneRenderingMgr.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneRenderingMgr.java @@ -43,185 +43,159 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** - * A View Pane Rendering Manager manages all the rendering from a view pane. - * It is responsible for handling debug events and removing renderings - * from the view pane as a debug session is terminated. - * In addition, the rendering manager is responsible for persisting memory renderings. - * Renderings need to be persisted when the memory view is disposed. If the view is - * opened again, the same set of renderings will be created in the view pane if - * the renderings are still valid. + * A View Pane Rendering Manager manages all the rendering from a view pane. It + * is responsible for handling debug events and removing renderings from the + * view pane as a debug session is terminated. In addition, the rendering + * manager is responsible for persisting memory renderings. Renderings need to + * be persisted when the memory view is disposed. If the view is opened again, + * the same set of renderings will be created in the view pane if the renderings + * are still valid. + * * @since 3.1 */ -public class ViewPaneRenderingMgr implements IDebugEventSetListener{ +public class ViewPaneRenderingMgr implements IDebugEventSetListener { - private final ArrayList fRenderings = new ArrayList(); + private final ArrayList<IMemoryRendering> fRenderings = new ArrayList<IMemoryRendering>(); private final IMemoryRenderingContainer fViewPane; - + private static final String RENDERINGS_TAG = "persistedMemoryRenderings"; //$NON-NLS-1$ private static final String MEMORY_RENDERING_TAG = "memoryRendering"; //$NON-NLS-1$ private static final String MEMORY_BLOCK = "memoryBlock"; //$NON-NLS-1$ private static final String RENDERING_ID = "renderingId"; //$NON-NLS-1$ - - public ViewPaneRenderingMgr(IMemoryRenderingContainer viewPane) - { + + public ViewPaneRenderingMgr(IMemoryRenderingContainer viewPane) { fViewPane = viewPane; loadPersistedRenderings(getPrefId()); } - public void removeMemoryBlockRendering(IMemoryBlock mem, String renderingId) - { - if(fRenderings == null) { + public void removeMemoryBlockRendering(IMemoryBlock mem, String renderingId) { + if (fRenderings == null) { return; } - + IMemoryRendering[] toRemove = getRenderings(mem, renderingId); - - for (int i=0; i<toRemove.length; i++) - { + + for (int i = 0; i < toRemove.length; i++) { fRenderings.remove(toRemove[i]); - + // remove listener after the last memory block has been removed - if (fRenderings.size() == 0) - { + if (fRenderings.size() == 0) { DebugPlugin.getDefault().removeDebugEventListener(this); } } - + storeRenderings(); } - public void addMemoryBlockRendering(IMemoryRendering rendering) { - + // do not allow duplicated objects if (fRenderings.contains(rendering)) { return; } - + fRenderings.add(rendering); - + // add listener for the first memory block added - if (fRenderings.size() == 1) - { + if (fRenderings.size() == 1) { DebugPlugin.getDefault().addDebugEventListener(this); } - + storeRenderings(); } - public void removeMemoryBlockRendering(IMemoryRendering rendering) { - if(rendering == null) { + if (rendering == null) { return; } - - if(!fRenderings.contains(rendering)) { + + if (!fRenderings.contains(rendering)) { return; } - + fRenderings.remove(rendering); - + // remove listener after the last memory block has been removed - if (fRenderings.size() == 0) - { + if (fRenderings.size() == 0) { DebugPlugin.getDefault().removeDebugEventListener(this); } - + storeRenderings(); } - public IMemoryRendering[] getRenderings(IMemoryBlock mem, String renderingId) - { - if (renderingId == null) - { + public IMemoryRendering[] getRenderings(IMemoryBlock mem, String renderingId) { + if (renderingId == null) { return getRenderingsFromMemoryBlock(mem); } - - ArrayList ret = new ArrayList(); - for (int i=0; i<fRenderings.size(); i++) - { - if (fRenderings.get(i) instanceof IMemoryRendering) - { - IMemoryRendering rendering = (IMemoryRendering)fRenderings.get(i); - if (rendering.getMemoryBlock() == mem && renderingId.equals(rendering.getRenderingId())) - { + + ArrayList<IMemoryRendering> ret = new ArrayList<IMemoryRendering>(); + for (int i = 0; i < fRenderings.size(); i++) { + if (fRenderings.get(i) != null) { + IMemoryRendering rendering = fRenderings.get(i); + if (rendering.getMemoryBlock() == mem && renderingId.equals(rendering.getRenderingId())) { ret.add(rendering); } } } - - return (IMemoryRendering[])ret.toArray(new IMemoryRendering[ret.size()]); + + return ret.toArray(new IMemoryRendering[ret.size()]); } - - public IMemoryRendering[] getRenderings() - { - return (IMemoryRendering[])fRenderings.toArray(new IMemoryRendering[fRenderings.size()]); + + public IMemoryRendering[] getRenderings() { + return fRenderings.toArray(new IMemoryRendering[fRenderings.size()]); } - public IMemoryRendering[] getRenderingsFromDebugTarget(IDebugTarget target) - { - ArrayList ret = new ArrayList(); - for (int i=0; i<fRenderings.size(); i++) - { - if (fRenderings.get(i) instanceof IMemoryRendering) - { - IMemoryRendering rendering = (IMemoryRendering)fRenderings.get(i); - if (rendering.getMemoryBlock().getDebugTarget() == target) - { + public IMemoryRendering[] getRenderingsFromDebugTarget(IDebugTarget target) { + ArrayList<IMemoryRendering> ret = new ArrayList<IMemoryRendering>(); + for (int i = 0; i < fRenderings.size(); i++) { + if (fRenderings.get(i) != null) { + IMemoryRendering rendering = fRenderings.get(i); + if (rendering.getMemoryBlock().getDebugTarget() == target) { ret.add(rendering); } } } - - return (IMemoryRendering[])ret.toArray(new IMemoryRendering[ret.size()]); + + return ret.toArray(new IMemoryRendering[ret.size()]); } - - - public IMemoryRendering[] getRenderingsFromMemoryBlock(IMemoryBlock block) - { - ArrayList ret = new ArrayList(); - for (int i=0; i<fRenderings.size(); i++) - { - if (fRenderings.get(i) instanceof IMemoryRendering) - { - IMemoryRendering rendering = (IMemoryRendering)fRenderings.get(i); - if (rendering.getMemoryBlock() == block) - { + + public IMemoryRendering[] getRenderingsFromMemoryBlock(IMemoryBlock block) { + ArrayList<IMemoryRendering> ret = new ArrayList<IMemoryRendering>(); + for (int i = 0; i < fRenderings.size(); i++) { + if (fRenderings.get(i) != null) { + IMemoryRendering rendering = fRenderings.get(i); + if (rendering.getMemoryBlock() == block) { ret.add(rendering); } } } - - return (IMemoryRendering[])ret.toArray(new IMemoryRendering[ret.size()]); - } - - + return ret.toArray(new IMemoryRendering[ret.size()]); + } + + @Override public void handleDebugEvents(DebugEvent[] events) { - - for (int i=0; i < events.length; i++) { + + for (int i = 0; i < events.length; i++) { handleDebugEvent(events[i]); } - + } - + public void handleDebugEvent(DebugEvent event) { Object obj = event.getSource(); IDebugTarget dt = null; - - if (event.getKind() == DebugEvent.TERMINATE) - { + + if (event.getKind() == DebugEvent.TERMINATE) { // a terminate event could happen from an IThread or IDebugTarget // Only handle terminate event from debug target - if (obj instanceof IDebugTarget) - { - dt = ((IDebugTarget)obj); - + if (obj instanceof IDebugTarget) { + dt = ((IDebugTarget) obj); + // returns empty array if dt == null IMemoryRendering[] deletedrendering = getRenderingsFromDebugTarget(dt); - - for (int i=0; i<deletedrendering.length; i++) - { + + for (int i = 0; i < deletedrendering.length; i++) { removeMemoryBlockRendering(deletedrendering[i].getMemoryBlock(), deletedrendering[i].getRenderingId()); fViewPane.removeMemoryRendering(deletedrendering[i]); } @@ -229,11 +203,10 @@ public class ViewPaneRenderingMgr implements IDebugEventSetListener{ } } - public void dispose() - { + public void dispose() { // remove all renderings fRenderings.clear(); - + String secondaryId = getViewSiteSecondaryId(); if (secondaryId != null) { // do not save renderings if this is not the primary rendering view @@ -248,19 +221,18 @@ public class ViewPaneRenderingMgr implements IDebugEventSetListener{ } } } - + DebugPlugin.getDefault().removeDebugEventListener(this); } - + /** - * Store renderings as preferences. If renderings are stored, renderings - * can be persisted even after the memory view is closed. + * Store renderings as preferences. If renderings are stored, renderings can + * be persisted even after the memory view is closed. */ - private void storeRenderings() - { - String renderingsStr= IInternalDebugCoreConstants.EMPTY_STRING; + private void storeRenderings() { + String renderingsStr = IInternalDebugCoreConstants.EMPTY_STRING; try { - renderingsStr= getRenderingsAsXML(); + renderingsStr = getRenderingsAsXML(); } catch (IOException e) { DebugUIPlugin.log(e); } catch (ParserConfigurationException e) { @@ -268,16 +240,15 @@ public class ViewPaneRenderingMgr implements IDebugEventSetListener{ } catch (TransformerException e) { DebugUIPlugin.log(e); } - + String prefid = getPrefId(); IEclipsePreferences node = InstanceScope.INSTANCE.getNode(DebugUIPlugin.getUniqueIdentifier()); - if(node != null) { + if (node != null) { if (renderingsStr != null) { node.put(prefid, renderingsStr); - } - else { + } else { IEclipsePreferences def = DefaultScope.INSTANCE.getNode(DebugUIPlugin.getUniqueIdentifier()); - if(def != null) { + if (def != null) { node.put(prefid, def.get(prefid, IInternalDebugCoreConstants.EMPTY_STRING)); } } @@ -290,47 +261,47 @@ public class ViewPaneRenderingMgr implements IDebugEventSetListener{ } private String getPrefId() { - // constructs id based on memory view's secondary id + the rendering view pane id - // format: secondaryId:viewPaneId + // constructs id based on memory view's secondary id + the rendering + // view pane id + // format: secondaryId:viewPaneId StringBuffer id = new StringBuffer(); IMemoryRenderingSite renderingSite = fViewPane.getMemoryRenderingSite(); IWorkbenchPartSite ps = renderingSite.getSite(); - if (ps instanceof IViewSite) - { - IViewSite vs = (IViewSite)ps; + if (ps instanceof IViewSite) { + IViewSite vs = (IViewSite) ps; String secondaryId = vs.getSecondaryId(); - if (secondaryId != null) - { + if (secondaryId != null) { id.append(secondaryId); id.append(":"); //$NON-NLS-1$ } - + } id.append(fViewPane.getId()); String prefId = id.toString(); return prefId; } - + /** * Convert renderings to xml text + * * @return * @throws IOException * @throws ParserConfigurationException * @throws TransformerException */ private String getRenderingsAsXML() throws IOException, ParserConfigurationException, TransformerException { - IMemoryRendering[] renderings= (IMemoryRendering[])fRenderings.toArray(new IMemoryRendering[fRenderings.size()]); - + IMemoryRendering[] renderings = fRenderings.toArray(new IMemoryRendering[fRenderings.size()]); + if (renderings.length == 0) { return null; } - - Document document= LaunchManager.getDocument(); - Element rootElement= document.createElement(RENDERINGS_TAG); + + Document document = LaunchManager.getDocument(); + Element rootElement = document.createElement(RENDERINGS_TAG); document.appendChild(rootElement); for (int i = 0; i < renderings.length; i++) { - IMemoryRendering rendering= renderings[i]; - Element element= document.createElement(MEMORY_RENDERING_TAG); + IMemoryRendering rendering = renderings[i]; + Element element = document.createElement(MEMORY_RENDERING_TAG); element.setAttribute(MEMORY_BLOCK, Integer.toString(rendering.getMemoryBlock().hashCode())); element.setAttribute(RENDERING_ID, rendering.getRenderingId()); rootElement.appendChild(element); @@ -342,11 +313,8 @@ public class ViewPaneRenderingMgr implements IDebugEventSetListener{ * Load renderings currently stored. */ private void loadPersistedRenderings(String prefId) { - String renderingsStr = Platform.getPreferencesService().getString( - DebugUIPlugin.getUniqueIdentifier(), - prefId, - "", //$NON-NLS-1$ - null); + String renderingsStr = Platform.getPreferencesService().getString(DebugUIPlugin.getUniqueIdentifier(), prefId, "", //$NON-NLS-1$ + null); if (renderingsStr.length() == 0) { return; } @@ -361,53 +329,48 @@ public class ViewPaneRenderingMgr implements IDebugEventSetListener{ DebugUIPlugin.logErrorMessage("Invalid format encountered while loading memory renderings."); //$NON-NLS-1$ return; } - NodeList list= root.getChildNodes(); - boolean renderingsAdded= false; - for (int i= 0, numItems= list.getLength(); i < numItems; i++) { - Node node= list.item(i); + NodeList list = root.getChildNodes(); + boolean renderingsAdded = false; + for (int i = 0, numItems = list.getLength(); i < numItems; i++) { + Node node = list.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { - Element element= (Element) node; + Element element = (Element) node; if (!element.getNodeName().equals(MEMORY_RENDERING_TAG)) { DebugUIPlugin.logErrorMessage("Invalid XML element encountered while loading memory rendering."); //$NON-NLS-1$ continue; } - String memoryBlockHashCode= element.getAttribute(MEMORY_BLOCK); + String memoryBlockHashCode = element.getAttribute(MEMORY_BLOCK); String renderingId = element.getAttribute(RENDERING_ID); - + IMemoryBlock[] memoryBlocks = DebugPlugin.getDefault().getMemoryBlockManager().getMemoryBlocks(); IMemoryBlock memoryBlock = null; - for (int j=0; j<memoryBlocks.length; j++) - { + for (int j = 0; j < memoryBlocks.length; j++) { if (Integer.toString(memoryBlocks[j].hashCode()).equals(memoryBlockHashCode)) { memoryBlock = memoryBlocks[j]; } } - - if (memoryBlock != null) - { - IMemoryRenderingType[] types = DebugUITools.getMemoryRenderingManager().getRenderingTypes(memoryBlock); + + if (memoryBlock != null) { + IMemoryRenderingType[] types = DebugUITools.getMemoryRenderingManager().getRenderingTypes(memoryBlock); IMemoryRenderingType type = null; - for (int k=0; k<types.length; k++) - { + for (int k = 0; k < types.length; k++) { if (types[k].getId().equals(renderingId)) { type = types[k]; } } - - // if memory block is not found, the rendering is no longer valid + + // if memory block is not found, the rendering is no longer + // valid // simply ignore the rendering - if (type != null) - { + if (type != null) { try { - + IMemoryRendering rendering = type.createRendering(); - if (rendering != null) - { + if (rendering != null) { rendering.init(fViewPane, memoryBlock); - if (!fRenderings.contains(rendering)) - { - fRenderings.add(rendering); - renderingsAdded= true; + if (!fRenderings.contains(rendering)) { + fRenderings.add(rendering); + renderingsAdded = true; } } } catch (CoreException e1) { @@ -420,18 +383,16 @@ public class ViewPaneRenderingMgr implements IDebugEventSetListener{ if (renderingsAdded) { DebugPlugin.getDefault().addDebugEventListener(this); } - } - + } + /** * @return secondary id, or null if not available */ - private String getViewSiteSecondaryId() - { + private String getViewSiteSecondaryId() { IMemoryRenderingSite renderingSite = fViewPane.getMemoryRenderingSite(); IWorkbenchPartSite ps = renderingSite.getSite(); - if (ps instanceof IViewSite) - { - IViewSite vs = (IViewSite)ps; + if (ps instanceof IViewSite) { + IViewSite vs = (IViewSite) ps; String secondaryId = vs.getSecondaryId(); return secondaryId; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneSelectionProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneSelectionProvider.java index c375da726..8e8c7795c 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneSelectionProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewPaneSelectionProvider.java @@ -8,7 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ - + package org.eclipse.debug.internal.ui.views.memory; import java.util.ArrayList; @@ -18,60 +18,67 @@ import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; - /** * Handles selection changes in a rendering view pane. + * * @since 3.1 - * + * */ -public class ViewPaneSelectionProvider implements ISelectionProvider -{ - ArrayList fListeners = new ArrayList(); +public class ViewPaneSelectionProvider implements ISelectionProvider { + ArrayList<ISelectionChangedListener> fListeners = new ArrayList<ISelectionChangedListener>(); ISelection fSelection; - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener + * (org.eclipse.jface.viewers.ISelectionChangedListener) */ - public void addSelectionChangedListener(ISelectionChangedListener listener) - { + @Override + public void addSelectionChangedListener(ISelectionChangedListener listener) { if (!fListeners.contains(listener)) fListeners.add(listener); - + } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection() */ - public ISelection getSelection() - { + @Override + public ISelection getSelection() { return fSelection; } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener + * (org.eclipse.jface.viewers.ISelectionChangedListener) */ - public void removeSelectionChangedListener(ISelectionChangedListener listener) - { + @Override + public void removeSelectionChangedListener(ISelectionChangedListener listener) { if (fListeners.contains(listener)) fListeners.remove(listener); - + } - /* (non-Javadoc) - * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse + * .jface.viewers.ISelection) */ - public void setSelection(ISelection selection) - { + @Override + public void setSelection(ISelection selection) { fSelection = selection; fireChanged(); } - - public void fireChanged() - { + + public void fireChanged() { SelectionChangedEvent evt = new SelectionChangedEvent(this, getSelection()); - for (int i=0; i<fListeners.size(); i++) - { - ((ISelectionChangedListener)fListeners.get(i)).selectionChanged(evt); + for (int i = 0; i < fListeners.size(); i++) { + fListeners.get(i).selectionChanged(evt); } } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewTabEnablementManager.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewTabEnablementManager.java index 13631cd25..f129ae23c 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewTabEnablementManager.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/ViewTabEnablementManager.java @@ -24,78 +24,72 @@ import org.eclipse.swt.events.SelectionListener; */ public class ViewTabEnablementManager implements SelectionListener { - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt + * .events.SelectionEvent) */ + @Override public void widgetSelected(SelectionEvent e) { - if (e.getSource() instanceof CTabFolder) - { + if (e.getSource() instanceof CTabFolder) { handleTabFolderSelection(e); } } - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse + * .swt.events.SelectionEvent) */ + @Override public void widgetDefaultSelected(SelectionEvent e) { - - + } - - private void handleTabFolderSelection(SelectionEvent event) - { - CTabFolder folder = (CTabFolder)event.getSource(); - + + private void handleTabFolderSelection(SelectionEvent event) { + CTabFolder folder = (CTabFolder) event.getSource(); + CTabItem selectedItem = folder.getSelection(); IMemoryViewTab selectedViewTab; - + // get selected view tab - if (selectedItem != null) - { + if (selectedItem != null) { Object obj = selectedItem.getData(); - - if (obj instanceof IMemoryViewTab) - { - selectedViewTab = (IMemoryViewTab)obj; - } - else - { + + if (obj instanceof IMemoryViewTab) { + selectedViewTab = (IMemoryViewTab) obj; + } else { return; } - } - else - { + } else { return; } - + // get all tabs CTabItem[] allTabs = folder.getItems(); - + // check all tabs to make sure they are enabled/disabled properly - for (int i=0; i<allTabs.length; i++) - { + for (int i = 0; i < allTabs.length; i++) { IMemoryViewTab viewTab; Object obj = allTabs[i].getData(); - - if (obj instanceof IMemoryViewTab) - { - viewTab = (IMemoryViewTab)obj; - + + if (obj instanceof IMemoryViewTab) { + viewTab = (IMemoryViewTab) obj; + // if view tab matches the selected item - if (viewTab == selectedViewTab && !viewTab.isEnabled() ) - { + if (viewTab == selectedViewTab && !viewTab.isEnabled()) { // if the item has been selected and this tab is not enabled // enable it. viewTab.setEnabled(true); viewTab.getRendering().activated(); - - } - else if (viewTab != selectedViewTab && viewTab.isEnabled()) - { + + } else if (viewTab != selectedViewTab && viewTab.isEnabled()) { // if the tab is not selected, disable it viewTab.setEnabled(false); viewTab.getRendering().deactivated(); - } + } } } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRendering.java index 4d2b01e90..946a2c5ad 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRendering.java @@ -37,6 +37,7 @@ public class ASCIIRendering extends AbstractAsyncTextRendering{ setCodePage(codepage); } + @Override public void dispose() { super.dispose(); } @@ -44,6 +45,7 @@ public class ASCIIRendering extends AbstractAsyncTextRendering{ /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.AbstractMemoryRendering#getNumCharsPerByte() */ + @Override public int getNumCharsPerByte() { return numCharsPerByte; } @@ -52,6 +54,7 @@ public class ASCIIRendering extends AbstractAsyncTextRendering{ /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.AbstractTableRendering#getBytes(java.lang.String, java.math.BigInteger, org.eclipse.debug.core.model.MemoryByte[], java.lang.String) */ + @Override public byte[] getBytes( String renderingId, BigInteger address, @@ -76,6 +79,7 @@ public class ASCIIRendering extends AbstractAsyncTextRendering{ /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.AbstractTableRendering#getString(java.lang.String, java.math.BigInteger, org.eclipse.debug.core.model.MemoryByte[]) */ + @Override public String getString( String renderingId, BigInteger address, @@ -105,6 +109,7 @@ public class ASCIIRendering extends AbstractAsyncTextRendering{ /* (non-Javadoc) * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent) */ + @Override public void propertyChange(PropertyChangeEvent event) { // handle code page changed event diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRenderingTypeDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRenderingTypeDelegate.java index 73c01e051..d242860a6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRenderingTypeDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ASCIIRenderingTypeDelegate.java @@ -23,6 +23,7 @@ public class ASCIIRenderingTypeDelegate implements IMemoryRenderingTypeDelegate /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate#createRendering(java.lang.String) */ + @Override public IMemoryRendering createRendering(String id) throws CoreException { return new ASCIIRendering(id); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractBaseTableRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractBaseTableRendering.java index 7eb33d120..dda837e40 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractBaseTableRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractBaseTableRendering.java @@ -87,6 +87,7 @@ public abstract class AbstractBaseTableRendering extends AbstractMemoryRendering /** * @return the label of this rendering */ + @Override abstract public String getLabel(); /** @@ -102,6 +103,7 @@ public abstract class AbstractBaseTableRendering extends AbstractMemoryRendering * @param address address to position cursor at * @throws DebugException if an exception occurrs */ + @Override abstract public void goToAddress(BigInteger address) throws DebugException; /** @@ -109,6 +111,7 @@ public abstract class AbstractBaseTableRendering extends AbstractMemoryRendering * * @return the currently selected address in this rendering */ + @Override abstract public BigInteger getSelectedAddress(); /** @@ -124,6 +127,7 @@ public abstract class AbstractBaseTableRendering extends AbstractMemoryRendering * @return the currently selected content in array of MemoryByte. * Returns an empty array if the selected address is out of buffered range. */ + @Override abstract public MemoryByte[] getSelectedAsBytes(); /** diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractIntegerRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractIntegerRendering.java index 9f11c9779..a8cab1aaa 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractIntegerRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractIntegerRendering.java @@ -29,6 +29,7 @@ public abstract class AbstractIntegerRendering extends AbstractAsyncTableRenderi super(renderingId); } + @Override public void init(IMemoryRenderingContainer container, IMemoryBlock block) { super.init(container, block); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractTableRenderingLabelProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractTableRenderingLabelProvider.java index 8fcbf331a..b48978798 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractTableRenderingLabelProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractTableRenderingLabelProvider.java @@ -44,6 +44,7 @@ abstract public class AbstractTableRenderingLabelProvider extends LabelProvider /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ + @Override public void dispose() { fRendering = null; super.dispose(); @@ -52,6 +53,7 @@ abstract public class AbstractTableRenderingLabelProvider extends LabelProvider /** * @see ITableLabelProvider#getColumnImage(Object, int) */ + @Override public Image getColumnImage(Object element, int columnIndex) { if (columnIndex == 0) @@ -78,6 +80,7 @@ abstract public class AbstractTableRenderingLabelProvider extends LabelProvider /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int) */ + @Override public String getColumnText(Object element, int columnIndex) { String columnLabel = null; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractVirtualContentTableModel.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractVirtualContentTableModel.java index c366b2dcc..a4f056241 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractVirtualContentTableModel.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AbstractVirtualContentTableModel.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. + * Copyright (c) 2006, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -16,70 +16,62 @@ import org.eclipse.debug.internal.ui.viewers.AsynchronousTableModel; import org.eclipse.debug.internal.ui.viewers.AsynchronousViewer; import org.eclipse.debug.internal.ui.viewers.ModelNode; -abstract public class AbstractVirtualContentTableModel extends AsynchronousTableModel{ +abstract public class AbstractVirtualContentTableModel extends AsynchronousTableModel { public AbstractVirtualContentTableModel(AsynchronousViewer viewer) { super(viewer); } - public Object[] getElements() - { + public Object[] getElements() { ModelNode[] nodes = getNodes(getRootNode().getElement()); - ArrayList result = new ArrayList(); - if (nodes != null) - { - for (int i=0; i<nodes.length; i++) - { + ArrayList<Object> result = new ArrayList<Object>(); + if (nodes != null) { + for (int i = 0; i < nodes.length; i++) { ModelNode[] children = nodes[i].getChildrenNodes(); - if (children != null) - { - for (int j=0; j<children.length; j++) - { + if (children != null) { + for (int j = 0; j < children.length; j++) { result.add(children[j].getElement()); } } } - + return result.toArray(); } return new Object[0]; } - - public Object getElement(int idx) - { + + public Object getElement(int idx) { Object[] elements = getElements(); - if (idx >=0 && idx < elements.length) + if (idx >= 0 && idx < elements.length) { return elements[idx]; + } return null; } - - public int indexOfElement(Object element) - { + public int indexOfElement(Object element) { Object[] elements = getElements(); - - for (int i=0; i<elements.length; i++) - { - if (elements[i] == element) + + for (int i = 0; i < elements.length; i++) { + if (elements[i] == element) { return i; + } } return -1; } - + abstract public int indexOfKey(Object key); - + abstract public int columnOf(Object element, Object key); - + abstract public Object getKey(int idx); - + abstract public Object getKey(Object element); - + abstract public Object getKey(int idx, int col); - - public void handleViewerChanged() - { - + + public void handleViewerChanged() { + } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncCopyTableRenderingAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncCopyTableRenderingAction.java index 18593a7d4..854148932 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncCopyTableRenderingAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncCopyTableRenderingAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2009 IBM Corporation and others. + * Copyright (c) 2006, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -18,40 +18,39 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; /** - * Copy action for <code>AbstractAsyncTableRendering</code>. Only copy what is visible in the view. - * + * Copy action for <code>AbstractAsyncTableRendering</code>. Only copy what is + * visible in the view. + * */ -public class AsyncCopyTableRenderingAction extends - CopyTableRenderingToClipboardAction { +public class AsyncCopyTableRenderingAction extends CopyTableRenderingToClipboardAction { public AsyncCopyTableRenderingAction(AbstractBaseTableRendering rendering, StructuredViewer viewer) { super(rendering, viewer); } + @Override protected String concatenateTableAsString(TableItem[] itemList) { - + Table table = null; if (itemList.length > 0) { table = itemList[0].getParent(); - + int topIndex = table.getTopIndex(); int itemCount = table.getItemCount(); - int numVisibleLines = Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - topIndex); - - ArrayList items = new ArrayList(); - + int numVisibleLines = Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - topIndex); + + ArrayList<TableItem> items = new ArrayList<TableItem>(); + // start at top index until there is no more data in the table - for (int i=topIndex; i< topIndex + numVisibleLines; i++) - { - if (itemList[i].getData() != null) - { + for (int i = topIndex; i < topIndex + numVisibleLines; i++) { + if (itemList[i].getData() != null) { items.add(itemList[i]); - } - else + } else { break; + } } - - return super.concatenateTableAsString((TableItem[]) items.toArray(new TableItem[items.size()])); + + return super.concatenateTableAsString(items.toArray(new TableItem[items.size()])); } return IInternalDebugCoreConstants.EMPTY_STRING; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncPrintTableRenderingAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncPrintTableRenderingAction.java index ed3b15f22..d132fbedc 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncPrintTableRenderingAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncPrintTableRenderingAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2009 IBM Corporation and others. + * Copyright (c) 2006, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -20,8 +20,9 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; /** - * Print action for <code>AbstractAsyncTableRendering</code>. Only print what is visible in the view. - * + * Print action for <code>AbstractAsyncTableRendering</code>. Only print what is + * visible in the view. + * */ public class AsyncPrintTableRenderingAction extends PrintTableRenderingAction { @@ -29,29 +30,28 @@ public class AsyncPrintTableRenderingAction extends PrintTableRenderingAction { super(rendering, viewer); } + @Override protected void printTable(TableItem[] itemList, GC printGC, Printer printer) { Table table = null; if (itemList.length > 0) { table = itemList[0].getParent(); - + int topIndex = table.getTopIndex(); int itemCount = table.getItemCount(); - int numVisibleLines = Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - topIndex); - - ArrayList items = new ArrayList(); - + int numVisibleLines = Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - topIndex); + + ArrayList<TableItem> items = new ArrayList<TableItem>(); + // start at top index until there is no more data in the table - for (int i=topIndex; i< topIndex + numVisibleLines; i++) - { - if (itemList[i].getData() != null) - { + for (int i = topIndex; i < topIndex + numVisibleLines; i++) { + if (itemList[i].getData() != null) { items.add(itemList[i]); - } - else + } else { break; + } } - - super.printTable((TableItem[])items.toArray(new TableItem[items.size()]), printGC, printer); + + super.printTable(items.toArray(new TableItem[items.size()]), printGC, printer); } } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java index b893ef4a8..8cc3feea2 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingCellModifier.java @@ -48,6 +48,7 @@ public class AsyncTableRenderingCellModifier implements ICellModifier { Job job = new Job("AsyncTableRenderingCellModifier"){ //$NON-NLS-1$ + @Override protected IStatus run(IProgressMonitor monitor) { fMBSupportsValueModification = fRendering.getMemoryBlock().supportsValueModification(); return Status.OK_STATUS; @@ -62,7 +63,8 @@ public class AsyncTableRenderingCellModifier implements ICellModifier { * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, * java.lang.String) */ - public boolean canModify(Object element, String property) { + @Override + public boolean canModify(Object element, String property) { boolean canModify = true; try { if (!(element instanceof MemorySegment)) @@ -122,7 +124,8 @@ public class AsyncTableRenderingCellModifier implements ICellModifier { * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, * java.lang.String) */ - public Object getValue(Object element, String property) { + @Override + public Object getValue(Object element, String property) { // give back the value of the column @@ -160,7 +163,8 @@ public class AsyncTableRenderingCellModifier implements ICellModifier { * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, * java.lang.String, java.lang.Object) */ - public void modify(Object element, final String property, final Object value) { + @Override + public void modify(Object element, final String property, final Object value) { MemorySegment segment = null; if (element instanceof TableItem) { @@ -179,6 +183,7 @@ public class AsyncTableRenderingCellModifier implements ICellModifier { Job job = new Job("Set Values"){ //$NON-NLS-1$ + @Override protected IStatus run(IProgressMonitor monitor) { try { // calculate offset to update diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingUpdatePolicy.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingUpdatePolicy.java index e27c07344..3d568e8c1 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingUpdatePolicy.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingUpdatePolicy.java @@ -35,6 +35,7 @@ import org.eclipse.ui.progress.UIJob; */ public class AsyncTableRenderingUpdatePolicy extends TableUpdatePolicy { + @Override public void modelChanged(IModelDelta node, IModelProxy proxy) { // clear current cache as it becomes invalid when the memory block is changed @@ -123,6 +124,7 @@ public class AsyncTableRenderingUpdatePolicy extends TableUpdatePolicy descriptor.updateContentBaseAddress(); UIJob job = new UIJob("go to address"){ //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { try { rendering.goToAddress(address); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingViewer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingViewer.java index 1b8736878..64c70baae 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingViewer.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncTableRenderingViewer.java @@ -91,15 +91,18 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { fCol = col; } + @Override public void applyEditorValue() { fEditor.removeListener(this); modifyValue(fRow, fCol, fEditor.getValue()); } + @Override public void cancelEditor() { fEditor.removeListener(this); } + @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { } @@ -123,6 +126,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { fRendering = rendering; getTable().addMouseListener(new MouseAdapter() { + @Override public void mouseDown(MouseEvent e) { handleTableMouseEvent(e); }}); @@ -130,6 +134,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { createCursor(getTable()); } + @Override public AbstractUpdatePolicy createUpdatePolicy() { return new AsyncTableRenderingUpdatePolicy(); } @@ -152,6 +157,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { fTableCursor.setFont(JFaceResources.getFont(IInternalDebugUIConstants.FONT_NAME)); fCursorKeyAdapter = new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { handleCursorKeyPressed(e); @@ -161,6 +167,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { fTableCursor.addKeyListener(fCursorKeyAdapter); fCursorTraverseListener = new TraverseListener() { + @Override public void keyTraversed(TraverseEvent e) { handleCursorTraverseEvt(e); }}; @@ -168,6 +175,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { fTableCursor.addTraverseListener(fCursorTraverseListener); fCursorMouseListener = new MouseAdapter() { + @Override public void mouseDown(MouseEvent e) { handleCursorMouseEvent(e); }}; @@ -176,6 +184,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { // cursor may be disposed before disposed is called // remove listeners whenever the cursor is disposed fTableCursor.addDisposeListener(new DisposeListener() { + @Override public void widgetDisposed(DisposeEvent e) { if (fTableCursor == null) return; @@ -186,6 +195,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { }}); fCursorSelectionListener = new SelectionAdapter() { + @Override public void widgetSelected(SelectionEvent e) { handleCursorMoved(); } @@ -321,6 +331,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { UIJob uiJob = new UIJob("Set Cursor Selection"){ //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { try { if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { @@ -465,6 +476,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { } + @Override protected synchronized void preservingSelection(Runnable updateCode) { Object oldTopIndexKey = null; @@ -536,6 +548,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { } } + @Override public void dispose() { super.dispose(); @@ -571,6 +584,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { { UIJob job = new UIJob("show table cursor"){ //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor monitor) { if (!fTableCursor.isDisposed()) { @@ -725,6 +739,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { private void addListeners(Control control) { fEditorKeyListener = new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { handleKeyEventInEditor(e); } @@ -741,6 +756,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { final KeyEvent e = event; Display.getDefault().asyncExec(new Runnable() { + @Override public void run() { Object obj = e.getSource(); @@ -884,13 +900,16 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { * This is not a real table labe provider, only goes to the table * to get the text at the specified row and column. */ + @Override public IBaseLabelProvider getLabelProvider() { return new ITableLabelProvider() { + @Override public Image getColumnImage(Object element, int columnIndex) { return null; } + @Override public String getColumnText(Object element, int columnIndex) { int idx = getVirtualContentModel().indexOfElement(element); if (idx >= 0 ) @@ -901,16 +920,20 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { return IInternalDebugCoreConstants.EMPTY_STRING; } + @Override public void addListener(ILabelProviderListener listener) { } + @Override public void dispose() { } + @Override public boolean isLabelProperty(Object element, String property) { return false; } + @Override public void removeListener(ILabelProviderListener listener) { }}; } @@ -932,6 +955,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { fPendingFormatViewer = false; preservingSelection(new Runnable() { + @Override public void run() { // causes the content of the table viewer to be replaced // without asking content adapter for content @@ -952,10 +976,12 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { } } + @Override public void handlePresentationFailure(IStatusMonitor monitor, IStatus status) { super.handlePresentationFailure(monitor, status); } + @Override public void refresh(boolean getContent) { if (getContent) @@ -964,6 +990,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { { preservingSelection(new Runnable() { + @Override public void run() { AbstractVirtualContentTableModel model = getVirtualContentModel(); if (model != null) @@ -976,6 +1003,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { } } + @Override protected void tableTopIndexSetComplete() { if (!fTableCursor.isDisposed()) @@ -993,15 +1021,18 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.viewers.model.provisional.viewers.AsynchronousViewer#getModel() */ + @Override public AsynchronousModel getModel() { return super.getModel(); } // TODO: need pluggable model to be truly flexible + @Override protected AbstractVirtualContentTableModel createVirtualContentTableModel() { return new TableRenderingModel(this); } + @Override protected void updateComplete(IStatusMonitor monitor) { super.updateComplete(monitor); @@ -1016,6 +1047,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { { preservingSelection(new Runnable() { + @Override public void run() { int[] coordinates = getCoordinatesFromKey(getSelectionKey()); @@ -1034,6 +1066,7 @@ public class AsyncTableRenderingViewer extends AsyncVirtualContentTableViewer { } } + @Override protected void clear(Widget item) { super.clear(item); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncVirtualContentTableViewer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncVirtualContentTableViewer.java index f1759b003..46ea5d76d 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncVirtualContentTableViewer.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/AsyncVirtualContentTableViewer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2012 IBM Corporation and others. + * Copyright (c) 2006, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -40,8 +40,8 @@ import org.eclipse.ui.progress.UIJob; abstract public class AsyncVirtualContentTableViewer extends AsynchronousTableViewer { private Object fPendingTopIndexKey; - private ArrayList fTopIndexQueue = new ArrayList(); - + private ArrayList<Object> fTopIndexQueue = new ArrayList<Object>(); + private boolean fPendingResizeColumns; private ListenerList fVirtualContentListeners; private SelectionListener fScrollSelectionListener; @@ -54,57 +54,52 @@ abstract public class AsyncVirtualContentTableViewer extends AsynchronousTableVi fPresentationErrorListeners = new ListenerList(); initScrollBarListener(); } - - private void initScrollBarListener() - { + + private void initScrollBarListener() { ScrollBar scroll = getTable().getVerticalBar(); fScrollSelectionListener = new SelectionAdapter() { + @Override public void widgetSelected(SelectionEvent e) { handleScrollBarSelection(); - }}; + } + }; scroll.addSelectionListener(fScrollSelectionListener); } - public void setTopIndex(Object key) - { + public void setTopIndex(Object key) { fPendingTopIndexKey = key; attemptSetTopIndex(); } - - protected Object getPendingSetTopIndexKey() - { + + protected Object getPendingSetTopIndexKey() { return fPendingTopIndexKey; } - + + @Override protected void handlePresentationFailure(IStatusMonitor monitor, IStatus status) { notifyPresentationError(monitor, status); } - - public void disposeColumns() - { + + public void disposeColumns() { // clean up old columns TableColumn[] oldColumns = getTable().getColumns(); - - for (int i=0; i<oldColumns.length; i++) - { + + for (int i = 0; i < oldColumns.length; i++) { oldColumns[i].dispose(); } } - - public void disposeCellEditors() - { + + public void disposeCellEditors() { // clean up old cell editors CellEditor[] oldCellEditors = getCellEditors(); - - if (oldCellEditors != null) - { - for (int i=0; i<oldCellEditors.length; i++) - { + + if (oldCellEditors != null) { + for (int i = 0; i < oldCellEditors.length; i++) { oldCellEditors[i].dispose(); } } } - + /** * Resize column to the preferred size. */ @@ -112,197 +107,183 @@ abstract public class AsyncVirtualContentTableViewer extends AsynchronousTableVi fPendingResizeColumns = true; fPendingResizeColumns = attemptResizeColumnsToPreferredSize(); } - - private boolean attemptResizeColumnsToPreferredSize() - { - if (fPendingResizeColumns) - { - if(!hasPendingUpdates()) { - UIJob job = new UIJob("packcolumns"){ //$NON-NLS-1$ + private boolean attemptResizeColumnsToPreferredSize() { + if (fPendingResizeColumns) { + if (!hasPendingUpdates()) { + UIJob job = new UIJob("packcolumns") { //$NON-NLS-1$ + + @Override public IStatus runInUIThread(IProgressMonitor monitor) { Table table = getTable(); - - if (!table.isDisposed()) - { - // if table size is zero, the rendering has not been made visible + + if (!table.isDisposed()) { + // if table size is zero, the rendering has not been + // made visible // cannot pack until the rendering is visible - if (table.getSize().x > 0) - { + if (table.getSize().x > 0) { TableColumn[] columns = table.getColumns(); - for (int i=0 ;i<columns.length-1; i++) - { + for (int i = 0; i < columns.length - 1; i++) { columns[i].pack(); - } - } - else - { + } + } else { fPendingResizeColumns = true; } } return Status.OK_STATUS; - }}; + } + }; job.setSystem(true); - job.schedule(); + job.schedule(); return false; } } return fPendingResizeColumns; } - + /** * Attempts to update any pending setTopIndex */ protected synchronized void attemptSetTopIndex() { if (fPendingTopIndexKey != null) { - Object remaining = doAttemptSetTopIndex(fPendingTopIndexKey); - if (remaining == null) - { - fPendingTopIndexKey = remaining; - } + Object remaining = doAttemptSetTopIndex(fPendingTopIndexKey); + if (remaining == null) { + fPendingTopIndexKey = remaining; + } } } - - private synchronized Object doAttemptSetTopIndex(final Object topIndexKey) - { + + private synchronized Object doAttemptSetTopIndex(final Object topIndexKey) { final int i = getVirtualContentModel().indexOfKey(topIndexKey); - if (i >= 0) - { - UIJob job = new UIJob("set top index"){ //$NON-NLS-1$ - - public IStatus runInUIThread(IProgressMonitor monitor) { - if (getTable().isDisposed()) - { - fTopIndexQueue.clear(); - return Status.OK_STATUS; + if (i >= 0) { + UIJob job = new UIJob("set top index") { //$NON-NLS-1$ + + @Override + public IStatus runInUIThread(IProgressMonitor monitor) { + if (getTable().isDisposed()) { + fTopIndexQueue.clear(); + return Status.OK_STATUS; + } + + int idx = getVirtualContentModel().indexOfKey(topIndexKey); + if (idx >= 0) { + if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { + DebugUIPlugin.trace("actual set top index: " + ((BigInteger) topIndexKey).toString(16)); //$NON-NLS-1$ } - - int idx = getVirtualContentModel().indexOfKey(topIndexKey); - if (idx >= 0) - { + fPendingTopIndexKey = null; + setTopIndexKey(topIndexKey); + getTable().setTopIndex(idx); + tableTopIndexSetComplete(); + + if (getTable().getTopIndex() != idx) { if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { - DebugUIPlugin.trace("actual set top index: " + ((BigInteger)topIndexKey).toString(16)); //$NON-NLS-1$ + DebugUIPlugin.trace(">>> FAILED set top index : " + ((BigInteger) topIndexKey).toString(16)); //$NON-NLS-1$ } - fPendingTopIndexKey = null; - setTopIndexKey(topIndexKey); - getTable().setTopIndex(idx); - tableTopIndexSetComplete(); - - if (getTable().getTopIndex() != idx ) - { + + // only retry if we have pending updates + if (hasPendingUpdates()) { if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { - DebugUIPlugin.trace(">>> FAILED set top index : " + ((BigInteger)topIndexKey).toString(16)); //$NON-NLS-1$ + DebugUIPlugin.trace(">>> Retry top index: " + ((BigInteger) topIndexKey).toString(16)); //$NON-NLS-1$ } - // only retry if we have pending updates - if (hasPendingUpdates()) - { - if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { - DebugUIPlugin.trace(">>> Retry top index: " + ((BigInteger)topIndexKey).toString(16)); //$NON-NLS-1$ - } - - fPendingTopIndexKey = topIndexKey; - } - } - } - else - { - if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { - DebugUIPlugin.trace("cannot find key, put it back to the queue: " + topIndexKey); //$NON-NLS-1$ + fPendingTopIndexKey = topIndexKey; } - fPendingTopIndexKey = topIndexKey; } - - // remove the top index key from queue when it is processed - removeKeyFromQueue(topIndexKey); - + } else { + if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { + DebugUIPlugin.trace("cannot find key, put it back to the queue: " + topIndexKey); //$NON-NLS-1$ + } + fPendingTopIndexKey = topIndexKey; + } + + // remove the top index key from queue when it is processed + removeKeyFromQueue(topIndexKey); + return Status.OK_STATUS; - }}; - + } + }; + // set top index does not happen immediately, keep track of // all pending set top index addKeyToQueue(topIndexKey); - + job.setSystem(true); job.schedule(); return topIndexKey; } return topIndexKey; } - - protected void tableTopIndexSetComplete() - { - - } - - public void addVirtualContentListener(IVirtualContentListener listener) - { - fVirtualContentListeners.add(listener); - } - - public void removeVirtualContentListener(IVirtualContentListener listener) - { - fVirtualContentListeners.remove(listener); - } - - protected void notifyListenersAtBufferStart() - { - int topIdx = getTable().getTopIndex(); - Object[] listeners = fVirtualContentListeners.getListeners(); - + + protected void tableTopIndexSetComplete() { + + } + + public void addVirtualContentListener(IVirtualContentListener listener) { + fVirtualContentListeners.add(listener); + } + + public void removeVirtualContentListener(IVirtualContentListener listener) { + fVirtualContentListeners.remove(listener); + } + + protected void notifyListenersAtBufferStart() { + int topIdx = getTable().getTopIndex(); + Object[] listeners = fVirtualContentListeners.getListeners(); + for (int i = 0; i < listeners.length; i++) { final IVirtualContentListener listener = (IVirtualContentListener) listeners[i]; - if (topIdx < listener.getThreshold(IVirtualContentListener.BUFFER_START)) - { + if (topIdx < listener.getThreshold(IVirtualContentListener.BUFFER_START)) { SafeRunner.run(new ISafeRunnable() { - public void run() throws Exception { + @Override + public void run() throws Exception { listener.handledAtBufferStart(); } + + @Override public void handleException(Throwable exception) { DebugUIPlugin.log(exception); } }); } } - } - - protected void notifyListenersAtBufferEnd() - { + } + + protected void notifyListenersAtBufferEnd() { Object[] listeners = fVirtualContentListeners.getListeners(); int topIdx = getTable().getTopIndex(); int bottomIdx = topIdx + getNumberOfVisibleLines(); int elementsCnt = getVirtualContentModel().getElements().length; int numLinesLeft = elementsCnt - bottomIdx; - + for (int i = 0; i < listeners.length; i++) { final IVirtualContentListener listener = (IVirtualContentListener) listeners[i]; - if (numLinesLeft <= listener.getThreshold(IVirtualContentListener.BUFFER_END)) - { + if (numLinesLeft <= listener.getThreshold(IVirtualContentListener.BUFFER_END)) { SafeRunner.run(new ISafeRunnable() { + @Override public void run() throws Exception { listener.handleAtBufferEnd(); } + + @Override public void handleException(Throwable exception) { DebugUIPlugin.log(exception); } }); } } - } - - protected void handleScrollBarSelection() - { -// ignore event if there is pending set top index in the queue - if (!fTopIndexQueue.isEmpty()) + } + + protected void handleScrollBarSelection() { + // ignore event if there is pending set top index in the queue + if (!fTopIndexQueue.isEmpty()) { return; + } topIndexChanged(); } - - public void topIndexChanged() - { - if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) - { - MemorySegment a = (MemorySegment)getTable().getItem(getTable().getTopIndex()).getData(); + + public void topIndexChanged() { + if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { + MemorySegment a = (MemorySegment) getTable().getItem(getTable().getTopIndex()).getData(); DebugUIPlugin.trace(Thread.currentThread().getName() + " " + this + " handle scroll bar moved: top index: " + a.getAddress().toString(16)); //$NON-NLS-1$ //$NON-NLS-2$ } @@ -311,64 +292,59 @@ abstract public class AsyncVirtualContentTableViewer extends AsynchronousTableVi notifyListenersAtBufferStart(); notifyListenersAtBufferEnd(); } - - protected void setTopIndexKey(Object key) - { + + protected void setTopIndexKey(Object key) { fTopIndexKey = key; } - - protected Object getTopIndexKey() - { + + protected Object getTopIndexKey() { return fTopIndexKey; } + @Override protected synchronized void preservingSelection(Runnable updateCode) { Object oldTopIndexKey = null; if (fPendingTopIndexKey == null) { // preserve selection oldTopIndexKey = getTopIndexKey(); - } - else - { + } else { oldTopIndexKey = fPendingTopIndexKey; } - + try { // perform the update updateCode.run(); - } finally { - if (oldTopIndexKey != null) - { + } finally { + if (oldTopIndexKey != null) { setTopIndex(oldTopIndexKey); } } } - - public void addPresentationErrorListener(IPresentationErrorListener errorListener) - { + + public void addPresentationErrorListener(IPresentationErrorListener errorListener) { fPresentationErrorListeners.add(errorListener); } - - public void removePresentationErrorListener(IPresentationErrorListener errorListener) - { + + public void removePresentationErrorListener(IPresentationErrorListener errorListener) { fPresentationErrorListeners.remove(errorListener); } - - private void notifyPresentationError(final IStatusMonitor monitor, final IStatus status) - { + + private void notifyPresentationError(final IStatusMonitor monitor, final IStatus status) { Object[] listeners = fPresentationErrorListeners.getListeners(); - + for (int i = 0; i < listeners.length; i++) { - - if (listeners[i] instanceof IPresentationErrorListener) - { - final IPresentationErrorListener listener = (IPresentationErrorListener)listeners[i]; + + if (listeners[i] instanceof IPresentationErrorListener) { + final IPresentationErrorListener listener = (IPresentationErrorListener) listeners[i]; SafeRunner.run(new ISafeRunnable() { + @Override public void run() throws Exception { listener.handlePresentationFailure(monitor, status); } + + @Override public void handleException(Throwable exception) { DebugUIPlugin.log(exception); } @@ -377,108 +353,104 @@ abstract public class AsyncVirtualContentTableViewer extends AsynchronousTableVi } } + @Override protected AsynchronousModel createModel() { return createVirtualContentTableModel(); } - + abstract protected AbstractVirtualContentTableModel createVirtualContentTableModel(); - - private void addKeyToQueue(Object topIndexKey) - { - synchronized(fTopIndexQueue){ + + private void addKeyToQueue(Object topIndexKey) { + synchronized (fTopIndexQueue) { if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { - DebugUIPlugin.trace(" >>> add to top index queue: " + ((BigInteger)topIndexKey).toString(16)); //$NON-NLS-1$ + DebugUIPlugin.trace(" >>> add to top index queue: " + ((BigInteger) topIndexKey).toString(16)); //$NON-NLS-1$ } fTopIndexQueue.add(topIndexKey); } } - - private void removeKeyFromQueue(Object topIndexKey) - { - synchronized(fTopIndexQueue){ + + private void removeKeyFromQueue(Object topIndexKey) { + synchronized (fTopIndexQueue) { if (DebugUIPlugin.DEBUG_DYNAMIC_LOADING) { - DebugUIPlugin.trace(" >>> remove frome top index queue: " + ((BigInteger)topIndexKey).toString(16)); //$NON-NLS-1$ + DebugUIPlugin.trace(" >>> remove frome top index queue: " + ((BigInteger) topIndexKey).toString(16)); //$NON-NLS-1$ } fTopIndexQueue.remove(topIndexKey); } } - - public AbstractVirtualContentTableModel getVirtualContentModel() - { - if (getModel() instanceof AbstractVirtualContentTableModel) + + public AbstractVirtualContentTableModel getVirtualContentModel() { + if (getModel() instanceof AbstractVirtualContentTableModel) { return (AbstractVirtualContentTableModel) getModel(); + } return null; } - - private int getNumberOfVisibleLines() - { + + private int getNumberOfVisibleLines() { Table table = getTable(); int height = table.getSize().y; - + // when table is not yet created, height is zero - if (height == 0) - { + if (height == 0) { // make use of the table viewer to estimate table size height = table.getParent().getSize().y; } - + // height of border int border = table.getHeaderHeight(); - + // height of scroll bar int scroll = table.getHorizontalBar().getSize().y; - // height of table is table's area minus border and scroll bar height - height = height-border-scroll; + // height of table is table's area minus border and scroll bar height + height = height - border - scroll; // calculate number of visible lines int lineHeight = getMinTableItemHeight(table); - - int numberOfLines = height/lineHeight; - - if (numberOfLines <= 0) + + int numberOfLines = height / lineHeight; + + if (numberOfLines <= 0) { return 20; - - return numberOfLines; + } + + return numberOfLines; } - - private int getMinTableItemHeight(Table table){ - + + private int getMinTableItemHeight(Table table) { + // Hack to get around Linux GTK problem. // On Linux GTK, table items have variable item height as - // carriage returns are actually shown in a cell. Some rows will be - // taller than others. When calculating number of visible lines, we - // need to find the smallest table item height. Otherwise, the rendering - // underestimates the number of visible lines. As a result the rendering + // carriage returns are actually shown in a cell. Some rows will be + // taller than others. When calculating number of visible lines, we + // need to find the smallest table item height. Otherwise, the rendering + // underestimates the number of visible lines. As a result the rendering // will not be able to get more memory as needed. - if (MemoryViewUtil.isLinuxGTK()) - { + if (MemoryViewUtil.isLinuxGTK()) { // check each of the items and find the minimum TableItem[] items = table.getItems(); int minHeight = table.getItemHeight(); - for (int i=0; i<items.length; i++) - { - if (items[i].getData() != null) + for (int i = 0; i < items.length; i++) { + if (items[i].getData() != null) { minHeight = Math.min(items[i].getBounds(0).height, minHeight); + } } - + return minHeight; - + } return table.getItemHeight(); } + @Override protected void updateComplete(IStatusMonitor monitor) { super.updateComplete(monitor); attemptSetTopIndex(); - if (monitor instanceof ILabelRequestMonitor) - { + if (monitor instanceof ILabelRequestMonitor) { fPendingResizeColumns = attemptResizeColumnsToPreferredSize(); } } - - protected boolean hasPendingSetTopIndex() - { + + protected boolean hasPendingSetTopIndex() { return !fTopIndexQueue.isEmpty(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BasicDebugViewContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BasicDebugViewContentProvider.java index 86ef0dbb5..8c16264b0 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BasicDebugViewContentProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BasicDebugViewContentProvider.java @@ -30,6 +30,7 @@ public abstract class BasicDebugViewContentProvider implements IStructuredConten /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ + @Override public void dispose() { fDisposed= true; } @@ -46,6 +47,7 @@ public abstract class BasicDebugViewContentProvider implements IStructuredConten /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ + @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { fViewer= (StructuredViewer) viewer; } @@ -100,6 +102,7 @@ public abstract class BasicDebugViewContentProvider implements IStructuredConten return; } Runnable r= new Runnable() { + @Override public void run() { if (!isDisposed()) { doHandleDebugEvent(event); @@ -113,6 +116,7 @@ public abstract class BasicDebugViewContentProvider implements IStructuredConten /* (non-Javadoc) * @see IDebugEventSetListener#handleDebugEvents(DebugEvent[]) */ + @Override public void handleDebugEvents(DebugEvent[] events) { for (int i=0; i < events.length; i++) handleDebugEvent(events[i]); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BigEndianAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BigEndianAction.java index 94d7d154c..77e707a87 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BigEndianAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/BigEndianAction.java @@ -27,12 +27,14 @@ public class BigEndianAction implements IObjectActionDelegate { /* (non-Javadoc) * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart) */ + @Override public void setActivePart(IAction action, IWorkbenchPart targetPart) { } /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { if (fRendering == null) @@ -47,6 +49,7 @@ public class BigEndianAction implements IObjectActionDelegate { /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IAction action, ISelection selection) { if (selection == null) diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CopyTableRenderingToClipboardAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CopyTableRenderingToClipboardAction.java index 43ad789a6..3c5d3292c 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CopyTableRenderingToClipboardAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CopyTableRenderingToClipboardAction.java @@ -158,6 +158,7 @@ public class CopyTableRenderingToClipboardAction extends Action /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { if (fRendering == null) diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CreateRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CreateRendering.java index e1f6d8479..afedc2b75 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CreateRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/CreateRendering.java @@ -83,6 +83,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) */ + @Override public Image getImage(Object element) { return DebugUIPlugin.getImageDescriptorRegistry().get( DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_MONITOR_EXPRESSION)); @@ -91,6 +92,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) */ + @Override public String getText(Object element) { if (element instanceof IMemoryRenderingType) { @@ -103,18 +105,21 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) */ + @Override public void addListener(ILabelProviderListener listener) { } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ + @Override public void dispose() { } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String) */ + @Override public boolean isLabelProperty(Object element, String property) { return false; } @@ -122,6 +127,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener) */ + @Override public void removeListener(ILabelProviderListener listener) { } @@ -133,6 +139,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ + @Override public Object[] getElements(Object inputElement) { IMemoryRenderingType[] renderings = DebugUITools.getMemoryRenderingManager().getRenderingTypes((IMemoryBlock)inputElement); return renderings; @@ -141,6 +148,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ + @Override public void dispose() { } @@ -148,6 +156,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ + @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @@ -156,6 +165,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRendering#createControl(org.eclipse.swt.widgets.Composite) */ + @Override public Control createControl(Composite parent) { fCanvas = new Composite(parent, SWT.NONE); GridLayout compositeLayout = new GridLayout(); @@ -205,12 +215,14 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR fViewer.addDoubleClickListener(new IDoubleClickListener (){ + @Override public void doubleClick(DoubleClickEvent event) { addRenderings(); }}); // listen for enter being pressed fViewer.getList().addKeyListener(new KeyAdapter() { + @Override public void keyPressed(KeyEvent e) { if (e.character == SWT.CR) addRenderings(); @@ -225,10 +237,12 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR addButton.addSelectionListener(new SelectionListener() { + @Override public void widgetSelected(SelectionEvent e) { addRenderings(); } + @Override public void widgetDefaultSelected(SelectionEvent e) { addRenderings(); }}); @@ -290,6 +304,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRendering#dispose() */ + @Override public void dispose() { fViewer = null; fCanvas = null; @@ -301,14 +316,17 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.memory.AbstractMemoryRendering#getControl() */ + @Override public Control getControl() { return fCanvas; } + @Override public void memoryRenderingBindingsChanged() { if (fViewer != null) fViewer.refresh(); } + @Override public String getLabel() { if (fTabLabel == null) { @@ -319,15 +337,18 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR return fTabLabel; } + @Override public Image getImage() { return DebugUIPlugin.getImageDescriptorRegistry().get( DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_MONITOR_EXPRESSION)); } + @Override public void becomesVisible() { // Do nothing, do not want to connect/disconnect from clients } + @Override public void becomesHidden() { // Do nothing, do not want to connect/disconnect from clients } @@ -336,6 +357,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR { Job job = new Job("Update Rendering Label"){ //$NON-NLS-1$ + @Override protected IStatus run(IProgressMonitor monitor) { fLabel = CreateRendering.super.getLabel(); fTabLabel = DebugUIMessages.CreateRenderingTab_label ; @@ -344,6 +366,7 @@ public class CreateRendering extends AbstractMemoryRendering implements IMemoryR WorkbenchJob wbJob = new WorkbenchJob("Create Rendering Update Label"){ //$NON-NLS-1$ + @Override public IStatus runInUIThread(IProgressMonitor wbMonitor) { if (fMemoryBlockLabel != null) { diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/DefaultEndianessAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/DefaultEndianessAction.java index 1c37061ad..0445ba216 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/DefaultEndianessAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/DefaultEndianessAction.java @@ -31,9 +31,11 @@ public class DefaultEndianessAction implements IObjectActionDelegate { super(); } + @Override public void setActivePart(IAction action, IWorkbenchPart targetPart) { } + @Override public void run(IAction action) { if (fRendering != null) { @@ -50,6 +52,7 @@ public class DefaultEndianessAction implements IObjectActionDelegate { } + @Override public void selectionChanged(IAction action, ISelection selection) { if (selection == null) return; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ErrorRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ErrorRendering.java index 36743b9cd..721d86c1d 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ErrorRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ErrorRendering.java @@ -48,6 +48,7 @@ public class ErrorRendering extends AbstractMemoryRendering { /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRendering#createControl(org.eclipse.swt.widgets.Composite) */ + @Override public Control createControl(Composite parent) { fTextViewer = new TextViewer(parent, SWT.READ_ONLY); fTextViewer.setDocument(new Document()); @@ -80,6 +81,7 @@ public class ErrorRendering extends AbstractMemoryRendering { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.memory.AbstractMemoryRendering#getControl() */ + @Override public Control getControl() { return fTextViewer.getControl(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingAction.java index c3ae82db8..5e0c04565 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingAction.java @@ -31,6 +31,7 @@ public class FormatTableRenderingAction extends Action { PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugUIConstants.PLUGIN_ID + ".FormatTableRenderingAction_context"); //$NON-NLS-1$ } + @Override public void run() { FormatTableRenderingDialog dialog = new FormatTableRenderingDialog(fRendering, DebugUIPlugin.getShell()); dialog.open(); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingDialog.java index b541a7a94..ed3705a13 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingDialog.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/FormatTableRenderingDialog.java @@ -76,6 +76,7 @@ public class FormatTableRenderingDialog extends TrayDialog fMsg = DebugUIMessages.FormatTableRenderingAction_1; } + @Override protected Control createDialogArea(Composite parent) { getShell().setText(DebugUIMessages.FormatTableRenderingAction_0); PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IDebugUIConstants.PLUGIN_ID + ".FormatTableRenderingDialog_context"); //$NON-NLS-1$ @@ -111,6 +112,7 @@ public class FormatTableRenderingDialog extends TrayDialog fRowControl.addSelectionListener(new SelectionListener() { + @Override public void widgetSelected(SelectionEvent e) { if (fCurrentRowIdx != fRowControl.getSelectionIndex()) { @@ -120,6 +122,7 @@ public class FormatTableRenderingDialog extends TrayDialog } } + @Override public void widgetDefaultSelected(SelectionEvent e) { }}); @@ -141,6 +144,7 @@ public class FormatTableRenderingDialog extends TrayDialog fColumnControl.addSelectionListener(new SelectionListener() { + @Override public void widgetSelected(SelectionEvent e) { if (fCurrentColIdx != fColumnControl.getSelectionIndex()) { @@ -150,6 +154,7 @@ public class FormatTableRenderingDialog extends TrayDialog } } + @Override public void widgetDefaultSelected(SelectionEvent e) { }}); @@ -174,10 +179,12 @@ public class FormatTableRenderingDialog extends TrayDialog fDefaultButton.addSelectionListener(new SelectionListener() { + @Override public void widgetSelected(SelectionEvent e) { saveDefaults(); } + @Override public void widgetDefaultSelected(SelectionEvent e) { }}); @@ -243,9 +250,11 @@ public class FormatTableRenderingDialog extends TrayDialog Button restoreButton = new Button(composite, SWT.NONE); restoreButton.setText(DebugUIMessages.FormatTableRenderingAction_6); restoreButton.addSelectionListener(new SelectionListener() { + @Override public void widgetSelected(SelectionEvent e) { restoreDefaults(); } + @Override public void widgetDefaultSelected(SelectionEvent e) { }}); data = new GridData(); @@ -258,6 +267,7 @@ public class FormatTableRenderingDialog extends TrayDialog return composite; } + @Override protected void okPressed() { int idx = fColumnControl.getSelectionIndex(); fColumnSize = fColumnSizes[idx]; @@ -521,6 +531,7 @@ public class FormatTableRenderingDialog extends TrayDialog fCurrentRowIdx = populateControl(row, fRowSizes, fRowControl); } + @Override protected Control createButtonBar(Composite parent) { Control ret = super.createButtonBar(parent); if (fDisableCancel) diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressAction.java index 690b788ca..bfa245303 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressAction.java @@ -60,6 +60,7 @@ public class GoToAddressAction extends Action /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { try diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java index 59799c034..2803d37b6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2009 IBM Corporation and others. + * Copyright (c) 2004, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -34,9 +34,9 @@ import org.eclipse.ui.PlatformUI; * @since 3.0 */ -public class GoToAddressDialog extends TrayDialog implements ModifyListener{ +public class GoToAddressDialog extends TrayDialog implements ModifyListener { - private static Vector history = new Vector(); + private static Vector<String> history = new Vector<String>(); private Combo expressionInput; private String expression; @@ -48,18 +48,22 @@ public class GoToAddressDialog extends TrayDialog implements ModifyListener{ setShellStyle(getShellStyle() | SWT.RESIZE); } - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets + * .Composite) */ + @Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IDebugUIConstants.PLUGIN_ID + ".GoToAddressDialog_context"); //$NON-NLS-1$ comp.setLayout(new GridLayout()); - GridData spec2= new GridData(); - spec2.grabExcessVerticalSpace= true; - spec2.grabExcessHorizontalSpace= true; - spec2.horizontalAlignment= GridData.FILL; - spec2.verticalAlignment= GridData.CENTER; + GridData spec2 = new GridData(); + spec2.grabExcessVerticalSpace = true; + spec2.grabExcessHorizontalSpace = true; + spec2.horizontalAlignment = GridData.FILL; + spec2.verticalAlignment = GridData.CENTER; comp.setLayoutData(spec2); Label textLabel = new Label(comp, SWT.NONE); @@ -67,81 +71,92 @@ public class GoToAddressDialog extends TrayDialog implements ModifyListener{ GridData textLayout = new GridData(); textLayout.widthHint = 280; textLabel.setLayoutData(textLayout); - + expressionInput = new Combo(comp, SWT.BORDER); - GridData spec= new GridData(); - spec.grabExcessVerticalSpace= false; - spec.grabExcessHorizontalSpace= true; - spec.horizontalAlignment= GridData.FILL; - spec.verticalAlignment= GridData.BEGINNING; + GridData spec = new GridData(); + spec.grabExcessVerticalSpace = false; + spec.grabExcessHorizontalSpace = true; + spec.horizontalAlignment = GridData.FILL; + spec.verticalAlignment = GridData.BEGINNING; spec.heightHint = 50; expressionInput.setLayoutData(spec); - + // add history - String[] historyExpression = (String[])history.toArray(new String[history.size()]); - for (int i=0; i<historyExpression.length; i++) - { + String[] historyExpression = history.toArray(new String[history.size()]); + for (int i = 0; i < historyExpression.length; i++) { expressionInput.add(historyExpression[i]); } - + expressionInput.addModifyListener(this); - + return comp; } - /* (non-Javadoc) - * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) + + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets + * .Shell) */ + @Override protected void configureShell(Shell newShell) { super.configureShell(newShell); - + newShell.setText(DebugUIMessages.GoToAddressDialog_GoToAddress); } - - public String getExpression() - { + + public String getExpression() { return expression; } - - /* (non-Javadoc) + + /* + * (non-Javadoc) * @see org.eclipse.jface.dialogs.Dialog#okPressed() */ + @Override protected void okPressed() { expression = expressionInput.getText(); // add to history list - if (!history.contains(expression)) + if (!history.contains(expression)) { history.insertElementAt(expression, 0); + } super.okPressed(); } - /* (non-Javadoc) - * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) + /* + * (non-Javadoc) + * @see + * org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events + * .ModifyEvent) */ + @Override public void modifyText(ModifyEvent e) { String input = expressionInput.getText(); - - if (input == null || input.equals(IInternalDebugCoreConstants.EMPTY_STRING)) - { - getButton(IDialogConstants.OK_ID).setEnabled(false); - } - else - { + + if (input == null || input.equals(IInternalDebugCoreConstants.EMPTY_STRING)) { + getButton(IDialogConstants.OK_ID).setEnabled(false); + } else { getButton(IDialogConstants.OK_ID).setEnabled(true); - } + } } - /* (non-Javadoc) - * @see org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets.Composite) + /* + * (non-Javadoc) + * @see + * org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets + * .Composite) */ + @Override protected Control createButtonBar(Composite parent) { - - Control ret = super.createButtonBar(parent); + + Control ret = super.createButtonBar(parent); getButton(IDialogConstants.OK_ID).setEnabled(false); - + return ret; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRendering.java index 07242208b..fa2c7b7de 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRendering.java @@ -30,6 +30,7 @@ public class HexIntegerRendering extends AbstractIntegerRendering { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.views.memory.AbstractTableRendering#getString(java.lang.String, java.math.BigInteger, org.eclipse.debug.core.model.MemoryByte[], java.lang.String) */ + @Override public String getString(String dataType, BigInteger address, MemoryByte[] data) { StringBuffer strBuffer = new StringBuffer(); @@ -78,6 +79,7 @@ public class HexIntegerRendering extends AbstractIntegerRendering { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.views.memory.AbstractTableRendering#getBytes(java.lang.String, java.math.BigInteger, org.eclipse.debug.core.model.MemoryByte[], java.lang.String) */ + @Override public byte[] getBytes(String dataType, BigInteger address, MemoryByte[] currentValues, String data) { @@ -96,6 +98,7 @@ public class HexIntegerRendering extends AbstractIntegerRendering { return bytes; } + @Override public int getNumCharsPerByte() { return 2; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRenderingDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRenderingDelegate.java index 8ccbde884..72218e37b 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRenderingDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexIntegerRenderingDelegate.java @@ -19,6 +19,7 @@ public class HexIntegerRenderingDelegate implements IMemoryRenderingTypeDelegate public HexIntegerRenderingDelegate() { } + @Override public IMemoryRendering createRendering(String id) throws CoreException { return new HexIntegerRendering(id); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRendering.java index cfc2efc49..9e994e303 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRendering.java @@ -31,6 +31,7 @@ public class HexRendering extends AbstractAsyncTableRendering { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.views.memory.AbstractTableRendering#getString(java.lang.String, java.math.BigInteger, org.eclipse.debug.core.model.MemoryByte[], java.lang.String) */ + @Override public String getString(String dataType, BigInteger address, MemoryByte[] data) { StringBuffer strBuffer = new StringBuffer(); @@ -56,6 +57,7 @@ public class HexRendering extends AbstractAsyncTableRendering { /* (non-Javadoc) * @see org.eclipse.debug.internal.ui.views.memory.AbstractTableRendering#getBytes(java.lang.String, java.math.BigInteger, org.eclipse.debug.core.model.MemoryByte[], java.lang.String) */ + @Override public byte[] getBytes(String dataType, BigInteger address, MemoryByte[] currentValues, String data) { byte[] bytes = RenderingsUtil.convertHexStringToByteArray(data, currentValues.length, getNumCharsPerByte()); @@ -63,6 +65,7 @@ public class HexRendering extends AbstractAsyncTableRendering { return bytes; } + @Override public int getNumCharsPerByte() { return 2; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRenderingTypeDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRenderingTypeDelegate.java index 22ddebbd4..9d9ab492b 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRenderingTypeDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/HexRenderingTypeDelegate.java @@ -23,6 +23,7 @@ public class HexRenderingTypeDelegate implements IMemoryRenderingTypeDelegate { /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate#createRendering(java.lang.String) */ + @Override public IMemoryRendering createRendering(String id) throws CoreException { HexRendering rendering = new HexRendering(id); return rendering; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/LittleEndianAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/LittleEndianAction.java index 9bf917eb4..fa4a3e1e6 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/LittleEndianAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/LittleEndianAction.java @@ -29,12 +29,14 @@ public class LittleEndianAction implements IObjectActionDelegate { /* (non-Javadoc) * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart) */ + @Override public void setActivePart(IAction action, IWorkbenchPart targetPart) { } /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { if (fRendering == null) @@ -49,6 +51,7 @@ public class LittleEndianAction implements IObjectActionDelegate { /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) */ + @Override public void selectionChanged(IAction action, ISelection selection) { if (selection == null) return; diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/MemorySegment.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/MemorySegment.java index ddb69da43..f9fe71143 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/MemorySegment.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/MemorySegment.java @@ -72,13 +72,13 @@ public class MemorySegment extends PlatformObject { if (start + length > fBytes.length) return new MemoryByte[0]; - ArrayList ret = new ArrayList(); + ArrayList<MemoryByte> ret = new ArrayList<MemoryByte>(); for (int i=start; i< start+length; i++) { ret.add(fBytes[i]); } - return (MemoryByte[]) ret.toArray(new MemoryByte[ret.size()]); + return ret.toArray(new MemoryByte[ret.size()]); } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/PrintTableRenderingAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/PrintTableRenderingAction.java index 1cb64e414..71ebac1d2 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/PrintTableRenderingAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/PrintTableRenderingAction.java @@ -171,6 +171,7 @@ public class PrintTableRenderingAction extends Action /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { if (!(fViewer.getControl() instanceof Table)) diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ReformatAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ReformatAction.java index 0324df3a5..7b4e1a53f 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ReformatAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ReformatAction.java @@ -34,6 +34,7 @@ public class ReformatAction extends Action { /* (non-Javadoc) * @see org.eclipse.jface.action.IAction#run() */ + @Override public void run() { fRendering.resizeColumnsToPreferredSize(); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ResetToBaseAddressAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ResetToBaseAddressAction.java index 23373ebc3..1dabe2ed9 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ResetToBaseAddressAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/ResetToBaseAddressAction.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2007 IBM Corporation and others. + * Copyright (c) 2004, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -30,36 +30,37 @@ import org.eclipse.ui.PlatformUI; */ public class ResetToBaseAddressAction extends Action { - private AbstractBaseTableRendering fRendering; + private AbstractBaseTableRendering fRendering; - public ResetToBaseAddressAction(AbstractBaseTableRendering rendering) { - fRendering = rendering; - setText(DebugUIMessages.ResetMemoryBlockAction_title); - setToolTipText(DebugUIMessages.ResetMemoryBlockAction_tootip); + public ResetToBaseAddressAction(AbstractBaseTableRendering rendering) { + fRendering = rendering; + setText(DebugUIMessages.ResetMemoryBlockAction_title); + setToolTipText(DebugUIMessages.ResetMemoryBlockAction_tootip); - setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_RESET_MEMORY)); - setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_LCL_RESET_MEMORY)); - setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_RESET_MEMORY)); - PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugUIConstants.PLUGIN_ID + ".ResetBaseAddressContextAction_context"); //$NON-NLS-1$ - } + setImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_ELCL_RESET_MEMORY)); + setHoverImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_LCL_RESET_MEMORY)); + setDisabledImageDescriptor(DebugPluginImages.getImageDescriptor(IInternalDebugUIConstants.IMG_DLCL_RESET_MEMORY)); + PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IDebugUIConstants.PLUGIN_ID + ".ResetBaseAddressContextAction_context"); //$NON-NLS-1$ + } - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.action.IAction#run() - */ - public void run() { - - // check if client has overrode the #reset method - // if client has overrode #reset method, call old method - // otherwise, call new #resetRendering method - // This is done to ensure that client's code will continue to be executed until - // they have migrated to the new #resetRendering API - Class renderingClass = fRendering.getClass(); - try { - Method method = renderingClass.getMethod("reset", new Class[]{}); //$NON-NLS-1$ - if (method.getDeclaringClass().equals(AbstractTableRendering.class)) - { + /* + * (non-Javadoc) + * @see org.eclipse.jface.action.IAction#run() + */ + @SuppressWarnings("deprecation") + @Override + public void run() { + + // check if client has overrode the #reset method + // if client has overrode #reset method, call old method + // otherwise, call new #resetRendering method + // This is done to ensure that client's code will continue to be + // executed until + // they have migrated to the new #resetRendering API + Class<? extends AbstractBaseTableRendering> renderingClass = fRendering.getClass(); + try { + Method method = renderingClass.getMethod("reset", new Class[] {}); //$NON-NLS-1$ + if (method.getDeclaringClass().equals(AbstractTableRendering.class)) { // client has not overrode, call new method try { fRendering.resetRendering(); @@ -77,11 +78,10 @@ public class ResetToBaseAddressAction extends Action { MemoryViewUtil.openError(DebugUIMessages.AbstractTableRendering_12, DebugUIMessages.AbstractTableRendering_13, e); // } } - - if(fRendering instanceof AbstractTableRendering) - { + + if (fRendering instanceof AbstractTableRendering) { // call old method - ((AbstractTableRendering)fRendering).reset(); + ((AbstractTableRendering) fRendering).reset(); } - } + } } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRendering.java index 9e79fba74..522f27eab 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRendering.java @@ -136,6 +136,7 @@ public class SignedIntegerRendering extends AbstractIntegerRendering { /* (non-Javadoc) * @see com.ibm.debug.extended.ui.AbstractMemoryRenderer#getString(java.lang.String, java.math.BigInteger, byte[]) */ + @Override public String getString(String dataType, BigInteger address, MemoryByte[] data) { boolean invalid = false; @@ -189,6 +190,7 @@ public class SignedIntegerRendering extends AbstractIntegerRendering { /* (non-Javadoc) * @see com.ibm.debug.extended.ui.AbstractMemoryRenderer#getBytes(java.lang.String, java.math.BigInteger, java.lang.String) */ + @Override public byte[] getBytes(String dataType, BigInteger address, MemoryByte[] currentValues, String data) { int columnSize = getBytesPerColumn(); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRenderingTypeDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRenderingTypeDelegate.java index 9651f7ed6..4d829d340 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRenderingTypeDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/SignedIntegerRenderingTypeDelegate.java @@ -24,6 +24,7 @@ public class SignedIntegerRenderingTypeDelegate implements /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate#createRendering(java.lang.String) */ + @Override public IMemoryRendering createRendering(String id) throws CoreException { return new SignedIntegerRendering(id); } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingCellModifier.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingCellModifier.java index 0cdaa4b38..0328cfe7e 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingCellModifier.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingCellModifier.java @@ -44,7 +44,8 @@ public class TableRenderingCellModifier implements ICellModifier { * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, * java.lang.String) */ - public boolean canModify(Object element, String property) { + @Override + public boolean canModify(Object element, String property) { boolean canModify = true; try { if (!(element instanceof TableRenderingLine)) @@ -104,7 +105,8 @@ public class TableRenderingCellModifier implements ICellModifier { * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, * java.lang.String) */ - public Object getValue(Object element, String property) { + @Override + public Object getValue(Object element, String property) { // give back the value of the column if (!(element instanceof TableRenderingLine)) @@ -143,7 +145,8 @@ public class TableRenderingCellModifier implements ICellModifier { * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, * java.lang.String, java.lang.Object) */ - public void modify(Object element, String property, Object value) { + @Override + public void modify(Object element, String property, Object value) { TableRenderingLine line = null; if (!(element instanceof TableRenderingLine)) { line = (TableRenderingLine) ((TableItem) element).getData(); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentInput.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentInput.java index ae9c5bf33..62bd36369 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentInput.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentInput.java @@ -188,6 +188,7 @@ public class TableRenderingContentInput extends PlatformObject { fNumLines = numLines; } + @Override public Object getAdapter(Class adapter) { if (adapter == AbstractTableRendering.class) { diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentProvider.java index 5a7402e27..51d14a938 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingContentProvider.java @@ -45,12 +45,12 @@ import org.eclipse.jface.viewers.Viewer; public class TableRenderingContentProvider extends BasicDebugViewContentProvider { // lines currently being displayed by the table rendering - protected Vector lineCache; + protected Vector<TableRenderingLine> lineCache; // Cache to allow the content provider to comppute change information // Cache is taken by copying the lineCache after a suspend event // or change event from the the memory block. - protected Hashtable contentCache; + protected Hashtable<String, TableRenderingLine> contentCache; // cache in the form of MemoryByte // needed for reorganizing cache when the row size changes @@ -70,8 +70,8 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider */ public TableRenderingContentProvider() { - lineCache = new Vector(); - contentCache = new Hashtable(); + lineCache = new Vector<TableRenderingLine>(); + contentCache = new Hashtable<String, TableRenderingLine>(); initializeDynamicLoad(); DebugPlugin.getDefault().addDebugEventListener(this); @@ -88,6 +88,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ + @Override public void inputChanged(Viewer v, Object oldInput, Object newInput) { try { if (newInput instanceof TableRenderingContentInput) @@ -106,6 +107,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider } } + @Override public void dispose() { DebugPlugin.getDefault().removeDebugEventListener(this); super.dispose(); @@ -114,6 +116,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider /* (non-Javadoc) * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ + @Override public Object[] getElements(Object parent) { // if cache is empty, get memory @@ -132,7 +135,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider return lineCache.toArray(); // check to see if the row size has changed - TableRenderingLine line = (TableRenderingLine)lineCache.get(0); + TableRenderingLine line = lineCache.get(0); int currentRowSize = line.getByteArray().length; int renderingRowSize = getTableRendering(fInput).getBytesPerLine(); @@ -435,7 +438,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider // if debug adapter did not return enough memory, create dummy memory if (memoryBuffer.length < reqNumBytes) { - ArrayList newBuffer = new ArrayList(); + ArrayList<MemoryByte> newBuffer = new ArrayList<MemoryByte>(); for (int i=0; i<memoryBuffer.length; i++) { @@ -451,7 +454,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider newBuffer.add(mb); } - memoryBuffer = (MemoryByte[])newBuffer.toArray(new MemoryByte[newBuffer.size()]); + memoryBuffer = newBuffer.toArray(new MemoryByte[newBuffer.size()]); } @@ -537,7 +540,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider TableRenderingLine newLine = new TableRenderingLine(tmpAddress, memory, lineCache.size(), paddedString); - TableRenderingLine oldLine = (TableRenderingLine)contentCache.get(newLine.getAddress()); + TableRenderingLine oldLine = contentCache.get(newLine.getAddress()); if (manageDelta) { @@ -620,6 +623,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider /* (non-Javadoc) * @see org.eclipse.debug.ui.internal.views.BasicDebugViewContentProvider#doHandleDebugEvent(org.eclipse.debug.core.DebugEvent) */ + @Override protected void doHandleDebugEvent(DebugEvent event) { if (getTableRendering(fInput).isVisible()) @@ -695,7 +699,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider public void takeContentSnapshot() { // cache content before getting new ones - TableRenderingLine[] lines =(TableRenderingLine[]) lineCache.toArray(new TableRenderingLine[lineCache.size()]); + TableRenderingLine[] lines =lineCache.toArray(new TableRenderingLine[lineCache.size()]); fContentCacheInBytes = convertLinesToBytes(lines); fContentCacheStartAddress = lines[0].getAddress(); @@ -784,11 +788,11 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider */ public void resetDeltas() { - Enumeration enumeration = contentCache.elements(); + Enumeration<TableRenderingLine> enumeration = contentCache.elements(); while (enumeration.hasMoreElements()) { - TableRenderingLine line = (TableRenderingLine)enumeration.nextElement(); + TableRenderingLine line = enumeration.nextElement(); line.unmarkDeltas(); } } @@ -802,8 +806,8 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider { if (lineCache != null && !lineCache.isEmpty()) { - TableRenderingLine first = (TableRenderingLine)lineCache.firstElement(); - TableRenderingLine last = (TableRenderingLine) lineCache.lastElement(); + TableRenderingLine first = lineCache.firstElement(); + TableRenderingLine last = lineCache.lastElement(); if (first == null ||last == null) return true; @@ -869,7 +873,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider fDynamicLoad = dynamicLoad; } - private void reorganizeLines(Vector lines, int numBytesPerLine) throws DebugException + private void reorganizeLines(Vector<TableRenderingLine> lines, int numBytesPerLine) throws DebugException { if (lines == null || lines.isEmpty()) return; @@ -878,7 +882,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider if (objs.length > 0) { - TableRenderingLine[] renderingLines = (TableRenderingLine[])lines.toArray(new TableRenderingLine[lines.size()]); + TableRenderingLine[] renderingLines = lines.toArray(new TableRenderingLine[lines.size()]); MemoryByte[] buffer = convertLinesToBytes(renderingLines); BigInteger lineAddress = new BigInteger(renderingLines[0].getAddress(), 16); int numberOfLines = buffer.length / numBytesPerLine; @@ -948,7 +952,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider DebugUIPlugin.log(e); addressLength = 4 * IInternalDebugUIConstants.CHAR_PER_BYTE; } - ArrayList lines = new ArrayList(); + ArrayList<TableRenderingLine> lines = new ArrayList<TableRenderingLine>(); String paddedString = DebugUITools.getPreferenceStore().getString(IDebugUIConstants.PREF_PADDED_STR); for (int i=0; i<numOfLines; i++) @@ -975,7 +979,7 @@ public class TableRenderingContentProvider extends BasicDebugViewContentProvider address = bigInt.add(BigInteger.valueOf(addressableUnit)).toString(16); } - return (TableRenderingLine[])lines.toArray(new TableRenderingLine[lines.size()]); + return lines.toArray(new TableRenderingLine[lines.size()]); } private AbstractTableRendering getTableRendering(TableRenderingContentInput input) diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProvider.java index 009de7707..5623ba8ef 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProvider.java @@ -42,6 +42,7 @@ public class TableRenderingLabelProvider extends AbstractTableRenderingLabelProv /* (non-Javadoc) * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ + @Override public void dispose() { if (fTablePresentation != null) { fTablePresentation.dispose(); @@ -53,6 +54,7 @@ public class TableRenderingLabelProvider extends AbstractTableRenderingLabelProv /* (non-Javadoc) * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object) */ + @Override public Color getForeground(Object element) { if (element instanceof TableRenderingLine) { @@ -69,6 +71,7 @@ public class TableRenderingLabelProvider extends AbstractTableRenderingLabelProv /* (non-Javadoc) * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object) */ + @Override public Color getBackground(Object element) { return null; @@ -77,6 +80,7 @@ public class TableRenderingLabelProvider extends AbstractTableRenderingLabelProv /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int) */ + @Override public String getColumnText(Object element, int columnIndex) { String label = super.getColumnText(element, columnIndex); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProviderEx.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProviderEx.java index 5fe5fbdaa..40f059d7b 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProviderEx.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLabelProviderEx.java @@ -49,6 +49,7 @@ public class TableRenderingLabelProviderEx extends TableRenderingLabelProvider i * * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ + @Override public void dispose() { if (fFontProvider != null) { fFontProvider = null; @@ -66,6 +67,7 @@ public class TableRenderingLabelProviderEx extends TableRenderingLabelProvider i /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITableColorProvider#getBackground(java.lang.Object, int) */ + @Override public Color getBackground(Object element, int columnIndex) { if (fColorProvider != null && columnIndex > 0) { MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex); @@ -81,6 +83,7 @@ public class TableRenderingLabelProviderEx extends TableRenderingLabelProvider i /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITableColorProvider#getForeground(java.lang.Object, int) */ + @Override public Color getForeground(Object element, int columnIndex) { if (fColorProvider != null && columnIndex > 0) { MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex); @@ -96,6 +99,7 @@ public class TableRenderingLabelProviderEx extends TableRenderingLabelProvider i /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int) */ + @Override public Image getColumnImage(Object element, int columnIndex) { if (fLabelProvider != null && columnIndex > 0) { MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex); @@ -111,6 +115,7 @@ public class TableRenderingLabelProviderEx extends TableRenderingLabelProvider i /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITableFontProvider#getFont(java.lang.Object, int) */ + @Override public Font getFont(Object element, int columnIndex) { if (fFontProvider != null && columnIndex > 0) { MemoryRenderingElement renderingElement = getMemoryRenderingElement(element, columnIndex); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLine.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLine.java index 0652248c7..a175e55b8 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLine.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingLine.java @@ -67,13 +67,13 @@ public class TableRenderingLine extends PlatformObject { public MemoryByte[] getBytes(int start, int end) { - ArrayList ret = new ArrayList(); + ArrayList<MemoryByte> ret = new ArrayList<MemoryByte>(); for (int i=start; i<end; i++) { ret.add(fBytes[i]); } - return (MemoryByte[]) ret.toArray(new MemoryByte[ret.size()]); + return ret.toArray(new MemoryByte[ret.size()]); } public String getRawMemoryString() @@ -279,6 +279,7 @@ public class TableRenderingLine extends PlatformObject { /* (non-Javadoc) * @see java.lang.Object#toString() */ + @Override public String toString() { StringBuffer buf = new StringBuffer(); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingModel.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingModel.java index d7c5a4096..6cf038350 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingModel.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingModel.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. + * Copyright (c) 2006, 2013 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -33,451 +33,409 @@ import org.eclipse.debug.internal.ui.viewers.ModelNode; import org.eclipse.debug.internal.ui.views.memory.MemoryViewUtil; import org.eclipse.debug.ui.memory.IMemoryRendering; +public class TableRenderingModel extends AbstractVirtualContentTableModel implements IContentChangeComputer { -public class TableRenderingModel extends AbstractVirtualContentTableModel - implements IContentChangeComputer { + private Hashtable<Object, Object> fCache; + private Vector<Object> fOrderedCache; // needed to re-organize cache - - private Hashtable fCache; - private Vector fOrderedCache; // needed to re-organize cache - private boolean fMBSupportsChangeManagement; private IMemoryBlock fMemoryBlock; class SupportsChangeMgmtJob extends Job { - - SupportsChangeMgmtJob() - { + + SupportsChangeMgmtJob() { super("Support Change Management"); //$NON-NLS-1$ setSystem(true); } + @Override protected IStatus run(IProgressMonitor monitor) { IMemoryBlock mb = getMemoryBlock(); - if (mb instanceof IMemoryBlockExtension) - { - IMemoryBlockExtension mbExt = (IMemoryBlockExtension)mb; + if (mb instanceof IMemoryBlockExtension) { + IMemoryBlockExtension mbExt = (IMemoryBlockExtension) mb; fMBSupportsChangeManagement = mbExt.supportsChangeManagement(); } return Status.OK_STATUS; } - + } - - + public TableRenderingModel(AsynchronousTableViewer viewer) { super(viewer); - fCache = new Hashtable(); - fOrderedCache = new Vector(); + fCache = new Hashtable<Object, Object>(); + fOrderedCache = new Vector<Object>(); } - - public int indexOfKey(Object key) - { - if (key instanceof BigInteger) - { - BigInteger address = (BigInteger)key; + + @Override + public int indexOfKey(Object key) { + if (key instanceof BigInteger) { + BigInteger address = (BigInteger) key; Object items[] = getElements(); - - for (int i=0; i<items.length; i++){ - if (items[i] != null && items[i] instanceof MemorySegment) - { - MemorySegment line = (MemorySegment)items[i]; - if (line.containsAddress(address)) + + for (int i = 0; i < items.length; i++) { + if (items[i] != null && items[i] instanceof MemorySegment) { + MemorySegment line = (MemorySegment) items[i]; + if (line.containsAddress(address)) { return i; + } } } } - + return -1; } - - public int columnOf(Object element, Object key) - { - if (element instanceof MemorySegment && key instanceof BigInteger) - { - BigInteger address = (BigInteger)key; - MemorySegment line = (MemorySegment)element; - if (line.containsAddress(address)) - { - if (getAddressableUnitsPerColumn() > 0) - { + + @Override + public int columnOf(Object element, Object key) { + if (element instanceof MemorySegment && key instanceof BigInteger) { + BigInteger address = (BigInteger) key; + MemorySegment line = (MemorySegment) element; + if (line.containsAddress(address)) { + if (getAddressableUnitsPerColumn() > 0) { BigInteger offset = address.subtract(line.getAddress()); - + // locate column int colAddressableUnit = getAddressableUnitsPerColumn(); - int col = ((offset.intValue()/colAddressableUnit)+1); - - if (col == 0) + int col = ((offset.intValue() / colAddressableUnit) + 1); + + if (col == 0) { col = 1; - + } + return col; } } } - + return -1; } - - public Object getKey(int idx) - { + + @Override + public Object getKey(int idx) { Object elmt = getElement(idx); - if (elmt instanceof MemorySegment) - { - return ((MemorySegment)elmt).getAddress(); + if (elmt instanceof MemorySegment) { + return ((MemorySegment) elmt).getAddress(); } - + return null; } + @Override public Object getKey(Object element) { int idx = indexOfElement(element); - if (idx >= 0) - { + if (idx >= 0) { return getKey(idx); } return null; } - + + @Override public Object getKey(int idx, int col) { Object element = getElement(idx); - if (element != null && element instanceof MemorySegment) - { - MemorySegment segment = (MemorySegment)element; + if (element != null && element instanceof MemorySegment) { + MemorySegment segment = (MemorySegment) element; BigInteger rowAddress = segment.getAddress(); - + int offset; - if (col > 0) - { - // get address offset + if (col > 0) { + // get address offset int addressableUnit = getAddressableUnitsPerColumn(); - offset = (col-1) * addressableUnit; - } - else - { + offset = (col - 1) * addressableUnit; + } else { offset = 0; } return rowAddress.add(BigInteger.valueOf(offset)); } return null; } - - private int getAddressableUnitsPerColumn() - { + + private int getAddressableUnitsPerColumn() { AsynchronousTableViewer viewer = getTableViewer(); - if (viewer.getPresentationContext() instanceof MemoryViewPresentationContext) - { - MemoryViewPresentationContext context = (MemoryViewPresentationContext)viewer.getPresentationContext(); - if (getTableRendering(context)!= null) - { + if (viewer.getPresentationContext() instanceof MemoryViewPresentationContext) { + MemoryViewPresentationContext context = (MemoryViewPresentationContext) viewer.getPresentationContext(); + if (getTableRendering(context) != null) { return getTableRendering(context).getAddressableUnitPerColumn(); } } return -1; } + @Override public void cache(Object[] elements) { - for (int i=0; i<elements.length; i++) - { + for (int i = 0; i < elements.length; i++) { Object obj = elements[i]; - if (obj instanceof MemorySegment) - { - cache(((MemorySegment)obj).getAddress(), obj); + if (obj instanceof MemorySegment) { + cache(((MemorySegment) obj).getAddress(), obj); } } - + } - - private void cache(Object key, Object element) - { + + private void cache(Object key, Object element) { fCache.put(key, element); fOrderedCache.add(element); } + @Override public Object[] compare(Object[] newElements) { - - if (fCache.isEmpty()) + + if (fCache.isEmpty()) { return newElements; - - for (int j=0; j<newElements.length; j++) - { + } + + for (int j = 0; j < newElements.length; j++) { Object obj = newElements[j]; - if (obj instanceof MemorySegment) - { - MemorySegment newSegment = (MemorySegment)obj; - MemorySegment oldSegment = (MemorySegment)fCache.get(newSegment.getAddress()); - - if (oldSegment != null) - { - if (oldSegment.getNumAddressableUnits() == newSegment.getNumAddressableUnits()) - { + if (obj instanceof MemorySegment) { + MemorySegment newSegment = (MemorySegment) obj; + MemorySegment oldSegment = (MemorySegment) fCache.get(newSegment.getAddress()); + + if (oldSegment != null) { + if (oldSegment.getNumAddressableUnits() == newSegment.getNumAddressableUnits()) { MemoryByte[] newBytes = newSegment.getBytes(); MemoryByte[] oldBytes = oldSegment.getBytes(); - - for (int i=0; i<newBytes.length; i++) - { + + for (int i = 0; i < newBytes.length; i++) { newBytes[i].setHistoryKnown(true); - - if (newBytes[i].isReadable() != oldBytes[i].isReadable()) - { + + if (newBytes[i].isReadable() != oldBytes[i].isReadable()) { newBytes[i].setChanged(true); continue; - } + } - if (newBytes[i].isReadable() && oldBytes[i].isReadable() && - (newBytes[i].getValue() != oldBytes[i].getValue())) + if (newBytes[i].isReadable() && oldBytes[i].isReadable() && (newBytes[i].getValue() != oldBytes[i].getValue())) { newBytes[i].setChanged(true); + } } } } } - } + } return newElements; } - - public void clearCache() - { + + @Override + public void clearCache() { fCache.clear(); fOrderedCache.clear(); } + @Override public boolean isEmpty() { return fCache.isEmpty(); } + @Override public void handleViewerChanged() { // viewer has changed, content manager needs to re-organize the cache rebuildCache(); rebuildContent(); } - - private void rebuildCache() - { - if (isEmpty()) + + private void rebuildCache() { + if (isEmpty()) { return; - - MemoryViewPresentationContext context = (MemoryViewPresentationContext)getTableViewer().getPresentationContext(); + } + + MemoryViewPresentationContext context = (MemoryViewPresentationContext) getTableViewer().getPresentationContext(); AbstractAsyncTableRendering rendering = getTableRendering(context); - - if (rendering == null) + + if (rendering == null) { return; - - ArrayList segments = new ArrayList(); - Enumeration enumeration = fOrderedCache.elements(); - - BigInteger address = ((MemorySegment)fOrderedCache.get(0)).getAddress(); - while (enumeration.hasMoreElements()) - { + } + + ArrayList<Object> segments = new ArrayList<Object>(); + Enumeration<Object> enumeration = fOrderedCache.elements(); + + BigInteger address = ((MemorySegment) fOrderedCache.get(0)).getAddress(); + while (enumeration.hasMoreElements()) { Object element = enumeration.nextElement(); - if (element instanceof MemorySegment) - { - + if (element instanceof MemorySegment) { + segments.add(element); } } - - MemoryByte[] bytes = convertSegmentsToBytes((MemorySegment[])segments.toArray(new MemorySegment[0])); - + + MemoryByte[] bytes = convertSegmentsToBytes(segments.toArray(new MemorySegment[0])); + int bytesPerLine = rendering.getBytesPerLine(); int numAddressableUnitPerLine = rendering.getAddressableUnitPerLine(); - + int addressableSize = rendering.getAddressableSize(); - + clearCache(); - - TableRenderingContentDescriptor descriptor = (TableRenderingContentDescriptor)rendering.getAdapter(TableRenderingContentDescriptor.class); + + TableRenderingContentDescriptor descriptor = (TableRenderingContentDescriptor) rendering.getAdapter(TableRenderingContentDescriptor.class); boolean alignAddress = true; - if (descriptor != null && !descriptor.isAlignAddressToBoundary()) - { + if (descriptor != null && !descriptor.isAlignAddressToBoundary()) { alignAddress = descriptor.isAlignAddressToBoundary(); } - + MemorySegment[] newSegments = convertMemoryBytesToSegments(address, bytes, bytesPerLine, numAddressableUnitPerLine, addressableSize, alignAddress); - for (int i=0; i<newSegments.length; i++) - { + for (int i = 0; i < newSegments.length; i++) { cache(newSegments[i].getAddress(), newSegments[i]); } } - - private void rebuildContent() - { - MemoryViewPresentationContext context = (MemoryViewPresentationContext)getTableViewer().getPresentationContext(); + + private void rebuildContent() { + MemoryViewPresentationContext context = (MemoryViewPresentationContext) getTableViewer().getPresentationContext(); AbstractAsyncTableRendering rendering = getTableRendering(context); - - if (rendering == null) + + if (rendering == null) { return; - - ArrayList segments = new ArrayList(); + } + + ArrayList<Object> segments = new ArrayList<Object>(); Object[] elements = getElements(); - for (int i=0; i<elements.length; i++) - { + for (int i = 0; i < elements.length; i++) { Object element = elements[i]; - if (element instanceof MemorySegment) - { + if (element instanceof MemorySegment) { segments.add(element); } } - - MemoryByte[] bytes = convertSegmentsToBytes((MemorySegment[])segments.toArray(new MemorySegment[segments.size()])); - + + MemoryByte[] bytes = convertSegmentsToBytes(segments.toArray(new MemorySegment[segments.size()])); + int bytesPerLine = rendering.getBytesPerLine(); int numAddressableUnitPerLine = rendering.getAddressableUnitPerLine(); - BigInteger address = (BigInteger)getKey(0); + BigInteger address = (BigInteger) getKey(0); int addressableSize = rendering.getAddressableSize(); - - TableRenderingContentDescriptor descriptor = (TableRenderingContentDescriptor)rendering.getAdapter(TableRenderingContentDescriptor.class); + + TableRenderingContentDescriptor descriptor = (TableRenderingContentDescriptor) rendering.getAdapter(TableRenderingContentDescriptor.class); boolean alignAddress = true; - if (descriptor != null && !descriptor.isAlignAddressToBoundary()) - { + if (descriptor != null && !descriptor.isAlignAddressToBoundary()) { alignAddress = descriptor.isAlignAddressToBoundary(); } - + MemorySegment[] newSegments = convertMemoryBytesToSegments(address, bytes, bytesPerLine, numAddressableUnitPerLine, addressableSize, alignAddress); remove(getElements()); add(newSegments); } - - private MemoryByte[] convertSegmentsToBytes(MemorySegment[] segments) - { - ArrayList toReturn = new ArrayList(); - for (int i=0; i<segments.length; i++) - { + private MemoryByte[] convertSegmentsToBytes(MemorySegment[] segments) { + ArrayList<MemoryByte> toReturn = new ArrayList<MemoryByte>(); + for (int i = 0; i < segments.length; i++) { MemoryByte[] temp = segments[i].getBytes(); - for (int j=0; j<temp.length; j++) - { + for (int j = 0; j < temp.length; j++) { toReturn.add(temp[j]); } } - return (MemoryByte[])toReturn.toArray(new MemoryByte[0]); + return toReturn.toArray(new MemoryByte[0]); } - + private MemorySegment[] convertMemoryBytesToSegments(BigInteger address, MemoryByte[] bytes, int bytesPerLine, int numAddressableUnitPerLine, int addressableSize, boolean alignAddress) { - + Assert.isTrue(bytesPerLine > 0); Assert.isTrue(numAddressableUnitPerLine > 0); - - ArrayList segments = new ArrayList(); + + ArrayList<MemorySegment> segments = new ArrayList<MemorySegment>(); MemoryByte[] temp = bytes; - - if (alignAddress) - { + + if (alignAddress) { BigInteger alignedAddress = MemoryViewUtil.alignToBoundary(address, numAddressableUnitPerLine); - - // also check that the address is properly aligned and prepend bytes if need to - if (!address.subtract(alignedAddress).equals(BigInteger.ZERO)) - { + + // also check that the address is properly aligned and prepend bytes + // if need to + if (!address.subtract(alignedAddress).equals(BigInteger.ZERO)) { BigInteger unitsToSetBack = address.subtract(alignedAddress); BigInteger tempAddress = address.subtract(unitsToSetBack); // only do this if the resulted address >= 0 // do not want to have negative addresses - if (tempAddress.compareTo(BigInteger.ZERO) >= 0) - { + if (tempAddress.compareTo(BigInteger.ZERO) >= 0) { address = alignedAddress; int numBytesNeeded = unitsToSetBack.intValue() * addressableSize; temp = new MemoryByte[bytes.length + numBytesNeeded]; - - for (int i=0; i<numBytesNeeded; i++) - { + + for (int i = 0; i < numBytesNeeded; i++) { temp[i] = new MemoryByte(); temp[i].setReadable(false); temp[i].setWritable(false); - temp[i].setEndianessKnown(false); - } - + temp[i].setEndianessKnown(false); + } + System.arraycopy(bytes, 0, temp, numBytesNeeded, bytes.length); bytes = temp; } } } - - if (bytes.length % bytesPerLine != 0) - { + + if (bytes.length % bytesPerLine != 0) { int numBytesNeeded = bytesPerLine - (bytes.length % bytesPerLine); temp = new MemoryByte[bytes.length + numBytesNeeded]; System.arraycopy(bytes, 0, temp, 0, bytes.length); - - for (int i=bytes.length; i<temp.length; i++) - { + + for (int i = bytes.length; i < temp.length; i++) { temp[i] = new MemoryByte(); temp[i].setReadable(false); temp[i].setWritable(false); - temp[i].setEndianessKnown(false); - } + temp[i].setEndianessKnown(false); + } bytes = temp; } - + int idx = 0; - while (idx < bytes.length && (idx + bytesPerLine)<= bytes.length) - { + while (idx < bytes.length && (idx + bytesPerLine) <= bytes.length) { MemoryByte[] newBytes = new MemoryByte[bytesPerLine]; System.arraycopy(bytes, idx, newBytes, 0, bytesPerLine); - + MemorySegment segment = new MemorySegment(address, newBytes, numAddressableUnitPerLine); segments.add(segment); - + address = address.add(BigInteger.valueOf(numAddressableUnitPerLine)); idx += bytesPerLine; } - - return (MemorySegment[])segments.toArray(new MemorySegment[segments.size()]); + + return segments.toArray(new MemorySegment[segments.size()]); } - - private AsynchronousTableViewer getTableViewer() - { - return (AsynchronousTableViewer)getViewer(); + + private AsynchronousTableViewer getTableViewer() { + return (AsynchronousTableViewer) getViewer(); } - protected void setChildren(ModelNode parentNode, List kids) { - - if (computeChanges()) - { + @Override + protected void setChildren(ModelNode parentNode, List<Object> kids) { + + if (computeChanges()) { Object[] newContent = compare(kids.toArray()); - ArrayList newList = new ArrayList(); - for (int i=0; i<newContent.length; i++) - { + ArrayList<Object> newList = new ArrayList<Object>(); + for (int i = 0; i < newContent.length; i++) { newList.add(newContent[i]); } super.setChildren(parentNode, newList); - } - else + } else { super.setChildren(parentNode, kids); + } } - - private boolean computeChanges() - { - if (isEmpty()) + + private boolean computeChanges() { + if (isEmpty()) { return false; - - if (fMBSupportsChangeManagement) - { + } + + if (fMBSupportsChangeManagement) { return false; } - + return true; } - - private IMemoryBlock getMemoryBlock() - { + + private IMemoryBlock getMemoryBlock() { return fMemoryBlock; } - + @Override public void init(Object root) { - if (root instanceof IMemoryBlock) - { - fMemoryBlock = (IMemoryBlock)root; + if (root instanceof IMemoryBlock) { + fMemoryBlock = (IMemoryBlock) root; new SupportsChangeMgmtJob().schedule(); } super.init(root); } - - private AbstractAsyncTableRendering getTableRendering(MemoryViewPresentationContext context) - { + + private AbstractAsyncTableRendering getTableRendering(MemoryViewPresentationContext context) { IMemoryRendering memRendering = context.getRendering(); - if (memRendering != null && memRendering instanceof AbstractAsyncTableRendering) - { - return (AbstractAsyncTableRendering)memRendering; + if (memRendering != null && memRendering instanceof AbstractAsyncTableRendering) { + return (AbstractAsyncTableRendering) memRendering; } return null; } diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPrefAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPrefAction.java index 43a2840bf..d6dc2c652 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPrefAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPrefAction.java @@ -30,6 +30,7 @@ public class TableRenderingPrefAction extends ActionDelegate implements IViewAct /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ + @Override public void run(IAction action) { IPreferencePage page = new TableRenderingPreferencePage(DebugUIMessages.TableRenderingPrefAction_0); showPreferencePage("org.eclipse.debug.ui.tableRenderingPreferencepage", page); //$NON-NLS-1$ @@ -38,6 +39,7 @@ public class TableRenderingPrefAction extends ActionDelegate implements IViewAct /* (non-Javadoc) * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) */ + @Override public void init(IViewPart view) { } @@ -49,6 +51,7 @@ public class TableRenderingPrefAction extends ActionDelegate implements IViewAct final PreferenceDialog dialog = new PreferenceDialog(DebugUIPlugin.getShell(), manager); final boolean [] result = new boolean[] { false }; BusyIndicator.showWhile(DebugUIPlugin.getStandardDisplay(), new Runnable() { + @Override public void run() { dialog.create(); dialog.setMessage(targetNode.getLabelText()); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPreferencePage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPreferencePage.java index e32593f33..3ac5222c3 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPreferencePage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPreferencePage.java @@ -49,6 +49,7 @@ public class TableRenderingPreferencePage extends PreferencePage implements super(title); } + @Override protected Control createContents(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IDebugUIConstants.PLUGIN_ID + ".table_renderings_preference_page_context"); //$NON-NLS-1$ @@ -109,6 +110,7 @@ public class TableRenderingPreferencePage extends PreferencePage implements fManual.setSelection(!isAuto); } + @Override public void propertyChange(PropertyChangeEvent event) { if (event.getProperty().equals(FieldEditor.VALUE)) { @@ -161,10 +163,12 @@ public class TableRenderingPreferencePage extends PreferencePage implements } } + @Override protected IPreferenceStore doGetPreferenceStore() { return DebugUIPlugin.getDefault().getPreferenceStore(); } + @Override public void dispose() { fAuto.removeSelectionListener(this); fManual.removeSelectionListener(this); @@ -174,14 +178,17 @@ public class TableRenderingPreferencePage extends PreferencePage implements super.dispose(); } + @Override public void widgetDefaultSelected(SelectionEvent e) { // do nothing } + @Override public void widgetSelected(SelectionEvent e) { updateTextEditorsEnablement(); } + @Override public boolean performOk() { boolean auto = fAuto.getSelection(); boolean currentValue = getPreferenceStore().getBoolean(IDebugPreferenceConstants.PREF_DYNAMIC_LOAD_MEM); @@ -194,6 +201,7 @@ public class TableRenderingPreferencePage extends PreferencePage implements return super.performOk(); } + @Override protected void performDefaults() { boolean auto = getPreferenceStore().getDefaultBoolean(IDebugPreferenceConstants.PREF_DYNAMIC_LOAD_MEM); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPropertiesPage.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPropertiesPage.java index 0f17551fe..7e9408004 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPropertiesPage.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/TableRenderingPropertiesPage.java @@ -31,6 +31,7 @@ public class TableRenderingPropertiesPage extends PropertyPage implements super(); } + @Override protected Control createContents(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IDebugUIConstants.PLUGIN_ID + ".TableRenderingPropertiesPage_context"); //$NON-NLS-1$ noDefaultAndApplyButton(); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRendering.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRendering.java index 2d126c515..25dde336f 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRendering.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRendering.java @@ -122,6 +122,7 @@ public class UnsignedIntegerRendering extends AbstractIntegerRendering { /* (non-Javadoc) * @see com.ibm.debug.extended.ui.AbstractMemoryRenderer#getString(java.lang.String, java.math.BigInteger, byte[]) */ + @Override public String getString(String dataType, BigInteger address, MemoryByte[] data) { String paddedStr = DebugUIPlugin.getDefault().getPreferenceStore().getString(IDebugUIConstants.PREF_PADDED_STR); @@ -173,6 +174,7 @@ public class UnsignedIntegerRendering extends AbstractIntegerRendering { /* (non-Javadoc) * @see com.ibm.debug.extended.ui.AbstractMemoryRenderer#getBytes(java.lang.String, java.math.BigInteger, java.lang.String) */ + @Override public byte[] getBytes(String dataType, BigInteger address, MemoryByte[] currentValues, String data) { int columnSize = getBytesPerColumn(); diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRenderingTypeDelegate.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRenderingTypeDelegate.java index fccbe93a5..805a8f983 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRenderingTypeDelegate.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/UnsignedIntegerRenderingTypeDelegate.java @@ -24,6 +24,7 @@ public class UnsignedIntegerRenderingTypeDelegate implements /* (non-Javadoc) * @see org.eclipse.debug.ui.memory.IMemoryRenderingTypeDelegate#createRendering(java.lang.String) */ + @Override public IMemoryRendering createRendering(String id) throws CoreException { return new UnsignedIntegerRendering(id); } |