AppCode: workspaces support
authorAnton Makeev <Anton.Makeev@jetbrains.com>
Wed, 1 Jun 2011 15:30:34 +0000 (17:30 +0200)
committerAnton Makeev <Anton.Makeev@jetbrains.com>
Fri, 17 Jun 2011 16:29:54 +0000 (18:29 +0200)
AppCode: handling fatal errors from Clang compiler
Platform: modified Application.doNotSave logic

platform/platform-api/src/com/intellij/projectImport/ProjectOpenProcessor.java
platform/platform-impl/src/com/intellij/openapi/application/ex/ApplicationEx.java
platform/platform-impl/src/com/intellij/openapi/application/impl/ApplicationImpl.java
platform/testFramework/src/com/intellij/mock/MockApplication.java
platform/util/src/com/intellij/openapi/util/UserDataHolderBase.java

index f1ae1937908e453d995c1f85b446040454f0a834..c2d89bf056ce17dc4ca66f77c77ccadf999d3fb3 100644 (file)
@@ -43,7 +43,7 @@ public abstract class ProjectOpenProcessor {
   }
 
   @Nullable
-  public abstract Project doOpenProject(@NotNull VirtualFile virtualFile, Project projectToClose, boolean forceOpenInNewFrame);
+  public abstract Project doOpenProject(@NotNull VirtualFile virtualFile, @Nullable Project projectToClose, boolean forceOpenInNewFrame);
 
   /**
    * Allow opening a directory directly if the project files are located in that directory.
index b0c73a34951b9c69b2c3adc6777373e566065406..43785c30f3bb5089cf3c83712fc0195a77a01dc6 100644 (file)
@@ -48,7 +48,7 @@ public interface ApplicationEx extends Application {
   void assertReadAccessToDocumentsAllowed();
 
   void doNotSave();
-
+  void doNotSave(boolean value);
   boolean isDoNotSave();
 
   //force exit
index 22fed98e32c5498ae780d693720c548c32c76e72..6617a5f4581d14c21fb450220d67140123cb6066 100644 (file)
@@ -99,7 +99,7 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application
 
   private int myInEditorPaintCounter = 0;
   private long myStartTime = 0;
-  private boolean myDoNotSave = false;
+  private boolean myDoNotSave;
   private volatile boolean myDisposeInProgress = false;
 
   private int myRestartCode = 0;
@@ -198,6 +198,8 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application
     myHeadlessMode = isHeadless;
     myCommandLineMode = isCommandLine;
 
+    myDoNotSave = myTestModeFlag || myHeadlessMode;
+
     loadApplicationComponents();
 
     if (myTestModeFlag) {
@@ -1198,13 +1200,12 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application
   }
 
   public void saveSettings() {
-    if (!myDoNotSave && !isUnitTestMode() && !isHeadlessEnvironment()) {
-      _saveSettings();
-    }
+    if (myDoNotSave) return;
+    _saveSettings();
   }
 
   public void saveAll() {
-    if (myDoNotSave || isUnitTestMode() || isHeadlessEnvironment()) return;
+    if (myDoNotSave) return;
 
     FileDocumentManager.getInstance().saveAllDocuments();
 
@@ -1218,9 +1219,12 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application
   }
 
   public void doNotSave() {
-    myDoNotSave = true;
+    doNotSave(true);
   }
 
+  public void doNotSave(boolean value) {
+    myDoNotSave = value;
+  }
 
   public boolean isDoNotSave() {
     return myDoNotSave;
index ab794573ff751b96afb7ead1168ebb27167d54ee..41e2ab0911f03effaa8f43a51b30a1c8f67c0a1a 100644 (file)
@@ -220,6 +220,10 @@ public class MockApplication extends MockComponentManager implements Application
   public void doNotSave() {
   }
 
+  @Override
+  public void doNotSave(boolean value) {
+  }
+
   @Override
   public boolean isDoNotSave() {
     return false; 
index 06cc02b46502da0fd6df466a87086d5ef8c31ea5..29ac787a30f343af886277efac700688c6cf244d 100644 (file)
@@ -90,7 +90,7 @@ public class UserDataHolderBase implements UserDataHolderEx, Cloneable {
     return map == null ? null : (T)map.get(key);
   }
 
-  public <T> void putUserData(@NotNull Key<T> key, T value) {
+  public <T> void putUserData(@NotNull Key<T> key, @Nullable T value) {
     while (true) {
       try {
         if (value == null) {