Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'codan/org.eclipse.cdt.codan.ui.cfgview')
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/.classpath7
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/.project34
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/META-INF/MANIFEST.MF19
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/build.properties6
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/connector.pngbin1036 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/decision.pngbin1291 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/exit.pngbin1059 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/jump.pngbin328 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/labeled.pngbin320 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/refresh_view.gifbin182 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/start.pngbin1038 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/icons/task.pngbin996 -> 0 bytes
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/plugin.xml16
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/ControlFlowGraphPlugin.java82
-rw-r--r--codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/views/ControlFlowGraphView.java426
16 files changed, 0 insertions, 598 deletions
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/.classpath b/codan/org.eclipse.cdt.codan.ui.cfgview/.classpath
deleted file mode 100644
index 64c5e31b7a..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/.project b/codan/org.eclipse.cdt.codan.ui.cfgview/.project
deleted file mode 100644
index 3df8f20cc9..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.cdt.codan.ui.cfgview</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/.settings/org.eclipse.jdt.core.prefs b/codan/org.eclipse.cdt.codan.ui.cfgview/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 345c8c8218..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Sat Mar 27 20:39:28 EDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/META-INF/MANIFEST.MF b/codan/org.eclipse.cdt.codan.ui.cfgview/META-INF/MANIFEST.MF
deleted file mode 100644
index 927ab94ffd..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Control Flow Graph
-Bundle-SymbolicName: org.eclipse.cdt.codan.ui.cfgview;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.cdt.codan.ui.cfgview.ControlFlowGraphPlugin
-Bundle-Vendor: Eclipse CDT
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.cdt.codan.core;bundle-version="1.0.0",
- org.eclipse.cdt.codan.core.cxx;bundle-version="1.0.0",
- org.eclipse.cdt.core,
- org.eclipse.cdt.ui,
- org.eclipse.core.resources,
- org.eclipse.ui.editors
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.cdt.codan.ui.cfgview;x-internal:=true,
- org.eclipse.cdt.codan.ui.cfgview.views;x-internal:=true
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/build.properties b/codan/org.eclipse.cdt.codan.ui.cfgview/build.properties
deleted file mode 100644
index 0d3d3a745d..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
- META-INF/,\
- .,\
- icons/
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/connector.png b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/connector.png
deleted file mode 100644
index f7e9831d34..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/connector.png
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/decision.png b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/decision.png
deleted file mode 100644
index 621d2c5c18..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/decision.png
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/exit.png b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/exit.png
deleted file mode 100644
index c1c59a9533..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/exit.png
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/jump.png b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/jump.png
deleted file mode 100644
index 0684374bdc..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/jump.png
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/labeled.png b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/labeled.png
deleted file mode 100644
index dad4626a9e..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/labeled.png
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/refresh_view.gif b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/refresh_view.gif
deleted file mode 100644
index a063c230ac..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/refresh_view.gif
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/start.png b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/start.png
deleted file mode 100644
index ce34b006b1..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/start.png
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/task.png b/codan/org.eclipse.cdt.codan.ui.cfgview/icons/task.png
deleted file mode 100644
index ba992a8ace..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/icons/task.png
+++ /dev/null
Binary files differ
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/plugin.xml b/codan/org.eclipse.cdt.codan.ui.cfgview/plugin.xml
deleted file mode 100644
index 40df7b700c..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/plugin.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-
- <extension
- point="org.eclipse.ui.views">
- <view
- category="org.eclipse.cdt.ui.views"
- class="org.eclipse.cdt.codan.ui.cfgview.views.ControlFlowGraphView"
- icon="icons/decision.png"
- id="oeg.eclipse.cdt.codan.ui.cfgview.views.ControlFlowGraphView"
- name="Control Flow Graph">
- </view>
- </extension>
-
-</plugin>
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/ControlFlowGraphPlugin.java b/codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/ControlFlowGraphPlugin.java
deleted file mode 100644
index 5c04087efa..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/ControlFlowGraphPlugin.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.eclipse.cdt.codan.ui.cfgview;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class ControlFlowGraphPlugin extends AbstractUIPlugin {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "org.eclipse.cdt.codan.ui.cfgview"; //$NON-NLS-1$
-
- // The shared instance
- private static ControlFlowGraphPlugin plugin;
-
- /**
- * The constructor
- */
- public ControlFlowGraphPlugin() {
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static ControlFlowGraphPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns an image descriptor for the image file at the given
- * plug-in relative path
- *
- * @param path the path
- * @return the image descriptor
- */
- public ImageDescriptor getImageDescriptor(String key) {
- ImageRegistry registry = getImageRegistry();
- ImageDescriptor descriptor = registry.getDescriptor(key);
- if (descriptor == null) {
- descriptor = imageDescriptorFromPlugin(PLUGIN_ID,key);
- registry.put(key, descriptor);
- }
- return descriptor;
- }
-
- public Image getImage(String key) {
- ImageRegistry registry = getImageRegistry();
- Image image = registry.get(key);
- if (image == null) {
- ImageDescriptor descriptor = imageDescriptorFromPlugin(PLUGIN_ID,key);
- registry.put(key, descriptor);
- image = registry.get(key);
- }
- return image;
- }
-
-
-}
diff --git a/codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/views/ControlFlowGraphView.java b/codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/views/ControlFlowGraphView.java
deleted file mode 100644
index ccb391c52e..0000000000
--- a/codan/org.eclipse.cdt.codan.ui.cfgview/src/org/eclipse/cdt/codan/ui/cfgview/views/ControlFlowGraphView.java
+++ /dev/null
@@ -1,426 +0,0 @@
-package org.eclipse.cdt.codan.ui.cfgview.views;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.cdt.codan.core.cxx.internal.model.cfg.ControlFlowGraphBuilder;
-import org.eclipse.cdt.codan.core.cxx.internal.model.cfg.CxxControlFlowGraph;
-import org.eclipse.cdt.codan.core.model.cfg.IBasicBlock;
-import org.eclipse.cdt.codan.core.model.cfg.IBranchNode;
-import org.eclipse.cdt.codan.core.model.cfg.ICfgData;
-import org.eclipse.cdt.codan.core.model.cfg.IConnectorNode;
-import org.eclipse.cdt.codan.core.model.cfg.IControlFlowGraph;
-import org.eclipse.cdt.codan.core.model.cfg.IDecisionNode;
-import org.eclipse.cdt.codan.core.model.cfg.IExitNode;
-import org.eclipse.cdt.codan.core.model.cfg.IJumpNode;
-import org.eclipse.cdt.codan.core.model.cfg.ISingleOutgoing;
-import org.eclipse.cdt.codan.core.model.cfg.IStartNode;
-import org.eclipse.cdt.codan.internal.core.cfg.AbstractBasicBlock;
-import org.eclipse.cdt.codan.ui.cfgview.ControlFlowGraphPlugin;
-import org.eclipse.cdt.core.dom.ast.IASTDeclaration;
-import org.eclipse.cdt.core.dom.ast.IASTFileLocation;
-import org.eclipse.cdt.core.dom.ast.IASTFunctionDefinition;
-import org.eclipse.cdt.core.dom.ast.IASTNode;
-import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
-import org.eclipse.cdt.core.dom.ast.c.CASTVisitor;
-import org.eclipse.cdt.core.model.CModelException;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.model.ITranslationUnit;
-import org.eclipse.cdt.core.parser.ParserUtil;
-import org.eclipse.cdt.core.resources.FileStorage;
-import org.eclipse.cdt.internal.ui.util.EditorUtility;
-import org.eclipse.cdt.ui.CDTUITools;
-import org.eclipse.cdt.ui.text.SharedASTJob;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.DrillDownAdapter;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-/**
- * This sample class demonstrates how to plug-in a new workbench view. The view
- * shows data obtained from the model. The sample creates a dummy model on the
- * fly, but a real implementation would connect to the model available either in
- * this or another plug-in (e.g. the workspace). The view is connected to the
- * model using a content provider.
- * <p>
- * The view uses a label provider to define how model objects should be
- * presented in the view. Each view can present the same model objects using
- * different labels and icons, if needed. Alternatively, a single label provider
- * can be shared between views in order to ensure that objects of the same type
- * are presented in the same way everywhere.
- * <p>
- */
-public class ControlFlowGraphView extends ViewPart {
- /**
- * The ID of the view as specified by the extension.
- */
- public static final String ID = "org.eclipse.cdt.codan.ui.cfgview.views.ControlFlowGraphView";
- private TreeViewer viewer;
- private DrillDownAdapter drillDownAdapter;
- private Action action1;
- private Action doubleClickAction;
-
- class ViewContentProvider implements IStructuredContentProvider,
- ITreeContentProvider {
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
- }
-
- public void dispose() {
- }
-
- public Object[] getElements(Object parent) {
- return getChildren(parent);
- }
-
- public Object getParent(Object child) {
- return null;
- }
-
- public Object[] getChildren(Object parent) {
- if (parent instanceof Collection) {
- return ((Collection) parent).toArray();
- } else if (parent instanceof IControlFlowGraph) {
- Collection<IBasicBlock> blocks = getFlat(
- ((IControlFlowGraph) parent).getStartNode(),
- new ArrayList<IBasicBlock>());
- return blocks.toArray();
- } else if (parent instanceof IDecisionNode) {
- ArrayList blocks = new ArrayList();
- IBasicBlock[] outgoingNodes = ((IDecisionNode) parent)
- .getOutgoingNodes();
- for (int i = 0; i < outgoingNodes.length; i++) {
- IBasicBlock arc= outgoingNodes[i];
- blocks.add(arc);
- }
- blocks.add(((IDecisionNode) parent).getMergeNode());
- return blocks.toArray();
- } else if (parent instanceof IBranchNode) {
- Collection<IBasicBlock> blocks = getFlat(((IBranchNode) parent)
- .getOutgoing(), new ArrayList<IBasicBlock>());
- return blocks.toArray();
- }
- return new Object[0];
- }
-
- public boolean hasChildren(Object parent) {
- return getChildren(parent).length > 0;
- }
-
- /**
- * @param list
- * @param startNode
- * @return
- */
- public Collection<IBasicBlock> getFlat(IBasicBlock node,
- Collection<IBasicBlock> list) {
- list.add(node);
- if (node instanceof IJumpNode)
- return list;
- if (node instanceof ISingleOutgoing) {
- getFlat(((ISingleOutgoing) node).getOutgoing(), list);
- } else if (node instanceof IDecisionNode) {
- getFlat(((IDecisionNode) node).getMergeNode().getOutgoing(),
- list);
- }
- return list;
- }
- }
-
- class ViewLabelProvider extends LabelProvider {
- public String getText(Object obj) {
- if (obj == null)
- return null;
- String strdata = "";
- if (obj instanceof ICfgData) {
- strdata = ((AbstractBasicBlock) obj).toStringData();
- }
- if (obj instanceof IConnectorNode) {
- strdata = blockHexLabel(obj) ;
- } else if (obj instanceof IJumpNode) {
- strdata = "jump to "+blockHexLabel(((IJumpNode) obj).getJumpNode());
- }
- return obj.getClass().getSimpleName() + ": " + strdata;
- }
-
- /**
- * @param obj
- * @return
- */
- protected String blockHexLabel(Object obj) {
- return "0x" + Integer.toHexString(System.identityHashCode(obj));
- }
-
- public Image getImage(Object obj) {
- String imageKey = "task.png";
- if (obj instanceof IDecisionNode
- || obj instanceof IControlFlowGraph)
- imageKey = "decision.png";
- else if (obj instanceof IExitNode)
- imageKey = "exit.png";
- else if (obj instanceof IStartNode)
- imageKey = "start.png";
- else if (obj instanceof IJumpNode)
- imageKey = "jump.png";
- else if (obj instanceof IBranchNode)
- imageKey = "labeled.png";
- else if (obj instanceof IConnectorNode)
- imageKey = "connector.png";
- return ControlFlowGraphPlugin.getDefault().getImage(
- "icons/" + imageKey);
- }
- }
-
- /**
- * The constructor.
- */
- public ControlFlowGraphView() {
- }
-
- /**
- * This is a callback that will allow us to create the viewer and initialize
- * it.
- */
- public void createPartControl(Composite parent) {
- viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
- drillDownAdapter = new DrillDownAdapter(viewer);
- viewer.setContentProvider(new ViewContentProvider());
- viewer.setLabelProvider(new ViewLabelProvider());
- viewer.setInput(getViewSite());
- makeActions();
- hookContextMenu();
- hookSingleClickAction();
- contributeToActionBars();
- }
-
- private void hookContextMenu() {
- MenuManager menuMgr = new MenuManager("#PopupMenu");
- menuMgr.setRemoveAllWhenShown(true);
- menuMgr.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager manager) {
- ControlFlowGraphView.this.fillContextMenu(manager);
- }
- });
- Menu menu = menuMgr.createContextMenu(viewer.getControl());
- viewer.getControl().setMenu(menu);
- getSite().registerContextMenu(menuMgr, viewer);
- }
-
- private void contributeToActionBars() {
- IActionBars bars = getViewSite().getActionBars();
- fillLocalPullDown(bars.getMenuManager());
- fillLocalToolBar(bars.getToolBarManager());
- }
-
- private void fillLocalPullDown(IMenuManager manager) {
- manager.add(action1);
- manager.add(new Separator());
- }
-
- private void fillContextMenu(IMenuManager manager) {
- manager.add(action1);
- manager.add(new Separator());
- drillDownAdapter.addNavigationActions(manager);
- // Other plug-ins can contribute there actions here
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- private void fillLocalToolBar(IToolBarManager manager) {
- manager.add(action1);
- manager.add(new Separator());
- drillDownAdapter.addNavigationActions(manager);
- }
-
- private void makeActions() {
- action1 = new Action() {
- public void run() {
- IEditorPart e = PlatformUI.getWorkbench()
- .getActiveWorkbenchWindow().getActivePage()
- .getActiveEditor();
- ITranslationUnit tu = (ITranslationUnit) CDTUITools
- .getEditorInputCElement(e.getEditorInput());
- Job job = new SharedASTJob("Job Name", tu) {
- @Override
- public IStatus runOnAST(ILanguage lang,
- IASTTranslationUnit ast) throws CoreException {
- processAst(ast);
- return Status.OK_STATUS;
- }
- };
- job.schedule();
- }
- };
- action1.setText("Synchronize");
- action1.setToolTipText("Synchronize");
- action1.setImageDescriptor(ControlFlowGraphPlugin.getDefault()
- .getImageDescriptor("icons/refresh_view.gif"));
- doubleClickAction = new Action() {
- public void run() {
- ISelection selection = viewer.getSelection();
- Object obj = ((IStructuredSelection) selection)
- .getFirstElement();
- showMessage("Double-click detected on " + obj.toString());
- }
- };
- }
-
- private void hookDoubleClickAction() {
- viewer.addDoubleClickListener(new IDoubleClickListener() {
- public void doubleClick(DoubleClickEvent event) {
- doubleClickAction.run();
- }
- });
- }
-
- private void showMessage(String message) {
- MessageDialog.openInformation(viewer.getControl().getShell(),
- "Control Flow Graph", message);
- }
-
- protected void processAst(IASTTranslationUnit ast) {
- final ArrayList<IControlFlowGraph> functions = new ArrayList<IControlFlowGraph>();
- CASTVisitor visitor = new CASTVisitor() {
- {
- shouldVisitDeclarations = true;
- }
-
- public int visit(IASTDeclaration decl) {
- if (decl instanceof IASTFunctionDefinition) {
- CxxControlFlowGraph graph = new ControlFlowGraphBuilder()
- .build((IASTFunctionDefinition) decl);
- functions.add(graph);
- return PROCESS_SKIP;
- }
- return PROCESS_CONTINUE;
- }
- };
- ast.accept(visitor);
- viewer.getControl().getDisplay().asyncExec(new Runnable() {
- public void run() {
- // TODO Auto-generated method stub
- viewer.setInput(functions);
- }
- });
- }
-
- /**
- * Passing the focus request to the viewer's control.
- */
- public void setFocus() {
- viewer.getControl().setFocus();
- }
-
- private class ASTHighlighterAction extends Action {
- private static final String A_PART_INSTANCEOF = "aPart instanceof "; //$NON-NLS-1$
- IEditorPart aPart = null;
-
- public ASTHighlighterAction(IEditorPart part) {
- this.aPart = part;
- }
-
- public void setPart(IEditorPart part) {
- this.aPart = part;
- }
-
- protected boolean open(String filename) throws PartInitException,
- CModelException {
- IPath path = new Path(filename);
- IFile f = ResourcesPlugin.getWorkspace().getRoot()
- .getFileForLocation(path);
- if (f != null) {
- EditorUtility.openInEditor(f);
- return true;
- }
- FileStorage storage = new FileStorage(null, path);
- EditorUtility.openInEditor(storage);
- return true;
- }
-
- @Override
- public void run() {
- ISelection selection = viewer.getSelection();
- Object obj = ((IStructuredSelection) selection).getFirstElement();
- if (obj instanceof ICfgData) {
- Object data = ((ICfgData) obj).getData();
- if (data instanceof IASTNode) {
- IASTNode node = (IASTNode) data;
- if (node instanceof IASTTranslationUnit) // don't
- return;
- IASTFileLocation loc = node.getFileLocation();
- String filename = loc.getFileName();
- if (filename.equals(""))
- return;
- IResource r = ParserUtil.getResourceForFilename(filename);
- if (r != null) {
- try {
- aPart = EditorUtility.openInEditor(r);
- } catch (PartInitException pie) {
- return;
- } catch (CModelException e) {
- return;
- }
- } else {
- // IPath path = new Path(filename);
- // if (tu != null) {
- // try {
- // aPart = EditorUtility.openInEditor(path, tu);
- // } catch (PartInitException e) {
- // return;
- // }
- // }
- }
- if (aPart instanceof AbstractTextEditor) {
- ((AbstractTextEditor) aPart).selectAndReveal(loc
- .getNodeOffset(), loc.getNodeLength());
- } else
- System.out.println(A_PART_INSTANCEOF
- + aPart.getClass().getName());
- aPart.getSite().getPage().activate(
- aPart.getSite().getPage().findView(ID));
- }
- }
- }
- }
-
- private void hookSingleClickAction() {
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- new ASTHighlighterAction(null).run();
- }
- });
- }
-} \ No newline at end of file

Back to the top