Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlena Laskavaia2009-04-18 02:11:07 +0000
committerAlena Laskavaia2009-04-18 02:11:07 +0000
commit8950983042c9335f0bcf4bd7f3515177f1372910 (patch)
tree1421839ce7f1f2ac2ed7096fcb6fbf6458c0209a /codan/org.eclipse.cdt.codan.checkers.ui
parente31bbb944abdcc20cbd5a7333fd357a94039704c (diff)
downloadorg.eclipse.cdt-8950983042c9335f0bcf4bd7f3515177f1372910.tar.gz
org.eclipse.cdt-8950983042c9335f0bcf4bd7f3515177f1372910.tar.xz
org.eclipse.cdt-8950983042c9335f0bcf4bd7f3515177f1372910.zip
plugin for checkers ui elements
Diffstat (limited to 'codan/org.eclipse.cdt.codan.checkers.ui')
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/.classpath7
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/.project28
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/META-INF/MANIFEST.MF15
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/build.properties4
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml11
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/CheckersUiActivator.java50
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/CodanProblemMarkerResolutionGenerator.java21
-rw-r--r--codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/QuickFixAssignmentInCondition.java82
9 files changed, 226 insertions, 0 deletions
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/.classpath b/codan/org.eclipse.cdt.codan.checkers.ui/.classpath
new file mode 100644
index 00000000000..1fa3e6803d3
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <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.checkers.ui/.project b/codan/org.eclipse.cdt.codan.checkers.ui/.project
new file mode 100644
index 00000000000..4c298688616
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.cdt.codan.checkers.ui</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/.settings/org.eclipse.jdt.core.prefs b/codan/org.eclipse.cdt.codan.checkers.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..5edb6f2ff88
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Fri Apr 17 21:55:42 EDT 2009
+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.checkers.ui/META-INF/MANIFEST.MF b/codan/org.eclipse.cdt.codan.checkers.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..faffd30dfcf
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Checkers Ui
+Bundle-SymbolicName: org.eclipse.cdt.codan.checkers.ui;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.eclipse.cdt.codan.checkers.ui.CheckersUiActivator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.jface.text;bundle-version="3.5.0",
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.core.resources;bundle-version="3.5.0",
+ org.eclipse.cdt.codan.checkers;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/build.properties b/codan/org.eclipse.cdt.codan.checkers.ui/build.properties
new file mode 100644
index 00000000000..34d2e4d2dad
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml b/codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml
new file mode 100644
index 00000000000..783ff1d88d6
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/plugin.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.ide.markerResolution">
+ <markerResolutionGenerator
+ class="org.eclipse.cdt.codan.checkers.ui.quickfix.CodanProblemMarkerResolutionGenerator"
+ markerType="org.eclipse.cdt.codan.core.codanProblem">
+ </markerResolutionGenerator>
+ </extension>
+</plugin>
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/CheckersUiActivator.java b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/CheckersUiActivator.java
new file mode 100644
index 00000000000..16356844b98
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/CheckersUiActivator.java
@@ -0,0 +1,50 @@
+package org.eclipse.cdt.codan.checkers.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class CheckersUiActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.cdt.codan.checkers.ui";
+
+ // The shared instance
+ private static CheckersUiActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public CheckersUiActivator() {
+ }
+
+ /*
+ * (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 CheckersUiActivator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/CodanProblemMarkerResolutionGenerator.java b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/CodanProblemMarkerResolutionGenerator.java
new file mode 100644
index 00000000000..f1c9e4a4fab
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/CodanProblemMarkerResolutionGenerator.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Andrew Gvozdev
+ * 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Andrew Gvozdev - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.codan.checkers.ui.quickfix;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.ui.IMarkerResolution;
+import org.eclipse.ui.IMarkerResolutionGenerator;
+
+public class CodanProblemMarkerResolutionGenerator implements IMarkerResolutionGenerator {
+ public IMarkerResolution[] getResolutions(IMarker marker) {
+ return new IMarkerResolution[] { new QuickFixAssignmentInCondition() };
+ }
+} \ No newline at end of file
diff --git a/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/QuickFixAssignmentInCondition.java b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/QuickFixAssignmentInCondition.java
new file mode 100644
index 00000000000..5c28d53ca01
--- /dev/null
+++ b/codan/org.eclipse.cdt.codan.checkers.ui/src/org/eclipse/cdt/codan/checkers/ui/quickfix/QuickFixAssignmentInCondition.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Andrew Gvozdev
+ * 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Andrew Gvozdev - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.cdt.codan.checkers.ui.quickfix;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.FindReplaceDocumentAdapter;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IFileEditorInput;
+import org.eclipse.ui.IMarkerResolution;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+public class QuickFixAssignmentInCondition implements IMarkerResolution {
+ public String getLabel() {
+ return "Change to '=='";
+ }
+
+ public void run(IMarker marker) {
+ // See if there is an open editor on the file containing the marker
+ IWorkbenchWindow w = PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow();
+ if (w == null) {
+ return;
+ }
+ IWorkbenchPage page = w.getActivePage();
+ if (page == null) {
+ return;
+ }
+ IFileEditorInput input = new FileEditorInput((IFile) marker
+ .getResource());
+ IEditorPart editorPart = page.findEditor(input);
+ if (editorPart == null) {
+ // open an editor
+ try {
+ editorPart = IDE.openEditor(page, (IFile) marker.getResource(),
+ true);
+ } catch (PartInitException e) {
+ e.printStackTrace();
+ }
+ }
+ if (editorPart == null) {
+ return;
+ }
+ if (editorPart instanceof ITextEditor) {
+ ITextEditor editor = (ITextEditor) editorPart;
+ IDocument doc = editor.getDocumentProvider().getDocument(
+ editor.getEditorInput());
+ int line = marker.getAttribute(IMarker.LINE_NUMBER, -1) - 1;
+ FindReplaceDocumentAdapter dad = new FindReplaceDocumentAdapter(doc);
+ try {
+ dad.find(doc.getLineOffset(line), "=", /* forwardSearch */
+ true, /* caseSensitive */false,
+ /* wholeWord */false, /* regExSearch */false);
+ dad.replace("==", /* regExReplace */false);
+ marker.delete();
+ } catch (BadLocationException e) {
+ // TODO: log the error
+ e.printStackTrace();
+ } catch (CoreException e) {
+ // TODO: log the error
+ e.printStackTrace();
+ }
+ }
+ }
+}

Back to the top