diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 95b24b9..0f24ae0 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -4,8 +4,6 @@
-
-
\ No newline at end of file
diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java b/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java
index a11d81d..ea12906 100644
--- a/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java
+++ b/src/main/java/de/fraunhofer/iem/icognicrypt/actions/RunCogniCryptAction.java
@@ -27,6 +27,7 @@ public class RunCogniCryptAction extends CogniCryptAction implements DumbAware
private static final Logger logger = Logger.getInstance(RunCogniCryptAction.class);
private final IPersistableCogniCryptSettings _settings;
private final IdeType _ideType;
+ public static boolean EnabledFlag= true;
public RunCogniCryptAction()
{
@@ -49,6 +50,12 @@ public void actionPerformed(@NotNull AnActionEvent e)
Iterable files = GetFilesToAnalyze(project);
// TODO: Re-Enable
+ if(e.getPresentation().isEnabled()){
+ e.getPresentation().setEnabled(false);
+ EnabledFlag=false;
+ update(e);
+ }
+
/*
if (files == null || !Linq.any(files))
{
@@ -87,6 +94,14 @@ private Iterable GetFilesToAnalyze(Project project)
}
return Collections.EMPTY_LIST;
}
+ public static void SetFlag(boolean b){
+ EnabledFlag=b;
+ }
+ @Override
+ public void update(AnActionEvent e) {
+ e.getPresentation().setEnabled(EnabledFlag);
+ }
+
}
diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java
index bbd55cc..dfc8598 100644
--- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java
+++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/AnalysisListenerService.java
@@ -21,6 +21,7 @@
import crypto.interfaces.ISLConstraint;
import crypto.rules.CrySLPredicate;
import de.fraunhofer.iem.icognicrypt.Constants;
+import de.fraunhofer.iem.icognicrypt.actions.RunCogniCryptAction;
import de.fraunhofer.iem.icognicrypt.core.Language.JvmClassNameUtils;
import de.fraunhofer.iem.icognicrypt.results.CogniCryptError;
import de.fraunhofer.iem.icognicrypt.results.IResultProvider;
@@ -29,7 +30,6 @@
import soot.SootClass;
import sync.pds.solver.nodes.Node;
import typestate.TransitionFunction;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -43,6 +43,7 @@ class AnalysisListenerService extends CrySLAnalysisListener implements Disposabl
private static final Logger logger = LoggerFactory.getLogger(AnalysisListenerService.class);
private final Project _project;
private IResultProvider _resultProvider;
+ public static boolean EnabledFlag;
private final List _sourceCodeFiles;
@@ -54,6 +55,7 @@ private AnalysisListenerService(Project project, IResultProvider resultProvider)
@Override
public void beforeAnalysis() {
+ EnabledFlag= false;
_resultProvider.RemoveAllResults();
_sourceCodeFiles.clear();
@@ -66,6 +68,7 @@ public void afterAnalysis() {
//After analysis completes, restart code analyzer so that error markers can be updated
//for (Project project : ProjectManager.getInstance().getOpenProjects())
DaemonCodeAnalyzer.getInstance(_project).restart();
+ RunCogniCryptAction.SetFlag(true);
}
@Override
diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java
index 57dd954..4095515 100644
--- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java
+++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/CogniCryptAndroidStudioAnalysisTask.java
@@ -15,6 +15,7 @@
import crypto.analysis.errors.IncompleteOperationError;
import de.fraunhofer.iem.crypto.CogniCryptAndroidAnalysis;
import de.fraunhofer.iem.icognicrypt.Constants;
+import de.fraunhofer.iem.icognicrypt.actions.RunCogniCryptAction;
import de.fraunhofer.iem.icognicrypt.core.Language.JvmClassNameUtils;
import de.fraunhofer.iem.icognicrypt.results.CogniCryptError;
import de.fraunhofer.iem.icognicrypt.results.IResultProvider;
@@ -111,6 +112,7 @@ public void onFinished()
_analysisQueue = null;
_stopWatch = null;
_resultProvider = null;
+ RunCogniCryptAction.SetFlag(true);
}
@Override
diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java
index 8ccafad..1017509 100644
--- a/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java
+++ b/src/main/java/de/fraunhofer/iem/icognicrypt/analysis/IntelliJAnalysis.java
@@ -86,8 +86,8 @@ public static void RunIntelliJAnalysis(Project project, Iterable filesToAn
Task analysis = new JavaProjectAnalysisTask(modulePath, Joiner.on(File.pathSeparator).join(classpath),
settings.getRulesDirectory());
ProgressManager.getInstance().run(analysis);
-
*/
+
}
ProgressManager.getInstance().run(new JavaProjectAnalysisTask(project, modulePaths
diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java b/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java
index b0a377d..0901027 100644
--- a/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java
+++ b/src/main/java/de/fraunhofer/iem/icognicrypt/results/ui/CogniCryptResultWindow.java
@@ -39,14 +39,14 @@ public CogniCryptResultWindow(ToolWindow toolWindow, Project project)
IResultProvider service = ServiceManager.getService(project, IResultProvider.class);
service.Subscribe(_tableModel);
-
- for (Set errorSet : service.GetErrors().values())
- {
- for (CogniCryptError error : errorSet)
- {
- _tableModel.AddError(error);
- }
- }
+// ToolWindow clearing when starting IDE
+// for (Set errorSet : service.GetErrors().values())
+// {
+// for (CogniCryptError error : errorSet)
+// {
+// _tableModel.AddError(error);
+// }
+// }
}
@Override
diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java
index 32e9604..ca12a47 100644
--- a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java
+++ b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/NotificationProvider.java
@@ -1,11 +1,18 @@
package de.fraunhofer.iem.icognicrypt.ui;
+import com.intellij.ide.DataManager;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
+import com.intellij.openapi.actionSystem.DataContext;
+import com.intellij.openapi.actionSystem.PlatformDataKeys;
+import com.intellij.openapi.project.Project;
+import static de.fraunhofer.iem.icognicrypt.IdeSupport.projects.ProjectHelper.GetActiveProject;
+
public class NotificationProvider
{
+
public static void Warn(String message)
{
ShowNotification(message, NotificationType.WARNING);
@@ -24,6 +31,13 @@ public static void ShowError(String message)
private static void ShowNotification(String message, NotificationType type)
{
Notification notification = new Notification("CogniCrypt", "CogniCrypt Message", message, type);
- Notifications.Bus.notify(notification);
+ Project project= GetActiveProject();
+ DataContext d = DataManager.getInstance().getDataContext();
+ Project project1= d.getData(PlatformDataKeys.PROJECT);
+ if(project==project1) {
+ Notifications.Bus.notify(notification, project);
+ }
+
}
+
}
diff --git a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form
index 21877a7..1988181 100644
--- a/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form
+++ b/src/main/java/de/fraunhofer/iem/icognicrypt/ui/multipleOutputFilesDialog/MultipleOutputFilesDialog.form
@@ -91,7 +91,9 @@
-
+
+
+