@Override public void regenerated(final IZyNodeRealizer realizer) { // When the realizer of a node was regenerated, all the information // from the debugger disappeared from the node. That means we have // to re-add them at this point. final IDebugger activeDebugger = m_debugPerspective.getCurrentSelectedDebugger(); final TargetProcessThread currentThread = activeDebugger == null ? null : activeDebugger.getProcessManager().getActiveThread(); if (currentThread != null) { final UnrelocatedAddress fileAddress = m_debugPerspective .getCurrentSelectedDebugger() .memoryToFile(currentThread.getCurrentAddress()); CDebuggerPainter.updateSingleNodeDebuggerHighlighting( m_graph, fileAddress, (NaviNode) realizer.getUserData().getNode()); } final INaviViewNode rawNode = (INaviViewNode) realizer.getUserData().getNode().getRawNode(); if (rawNode instanceof INaviCodeNode) { CBreakpointPainter.paintBreakpoints( m_manager, (NaviNode) realizer.getUserData().getNode(), (INaviCodeNode) rawNode); } else if (rawNode instanceof INaviFunctionNode) { CBreakpointPainter.paintBreakpoints( m_manager, (NaviNode) realizer.getUserData().getNode(), (INaviFunctionNode) rawNode); } }
/** * Creates a new table menu object. * * @param parent Parent window used for dialogs. * @param debugger The debugger used to manipulate the thread. * @param thread The clicked thread. */ public CThreadInformationTableMenu( final Window parent, final IDebugger debugger, final TargetProcessThread thread) { Preconditions.checkNotNull(parent, "IE00648: Parent argument can not be null"); Preconditions.checkNotNull(thread, "IE00650: Thread argument can not be null"); if (debugger != null) { if (thread.getState() == ThreadState.RUNNING) { add(CActionProxy.proxy(new CSuspendThreadAction(thread))); } else { add(CActionProxy.proxy(new CResumeThreadAction(thread))); } } }