import com.intellij.codeInsight.CodeInsightSettings;
import com.intellij.ide.RecentProjectsManager;
-import com.intellij.ide.impl.ProjectUtil;
import com.intellij.ide.ui.UISettings;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.application.PathManager;
@NonNls private static final String CONFIGURED_V1 = "StudyPyCharm.InitialConfiguration";
@NonNls private static final String CONFIGURED_V11 = "StudyPyCharm.InitialConfiguration1.1";
- public static boolean UPDATE_PROJECT = false;
-
/**
* @noinspection UnusedParameters
*/
LOG.warn("Couldn't copy bundled courses " + e);
}
}
- final File projectDir = new File(ProjectUtil.getBaseDir(), "PythonIntroduction");
- if (projectDir.exists()) {
- //noinspection AssignmentToStaticFieldFromInstanceMethod
- UPDATE_PROJECT = true;
- }
}
}
package com.jetbrains.python.edu;
import com.intellij.ide.BrowserUtil;
-import com.intellij.ide.impl.ProjectUtil;
import com.intellij.ide.ui.UISettings;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.notification.Notification;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.actionSystem.ex.AnActionListener;
import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.application.PathManager;
import com.intellij.openapi.components.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.EditorFactory;
import com.intellij.openapi.project.DumbAwareRunnable;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.startup.StartupManager;
-import com.intellij.openapi.ui.popup.*;
+import com.intellij.openapi.ui.popup.Balloon;
+import com.intellij.openapi.ui.popup.JBPopupAdapter;
+import com.intellij.openapi.ui.popup.LightweightWindowEvent;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileAdapter;
@Override
public void projectOpened() {
- final File pythonIntroduction = new File(ProjectUtil.getBaseDir(), "PythonIntroduction");
- if (StudyInitialConfigurator.UPDATE_PROJECT && myProject.getBasePath().equals(pythonIntroduction.getAbsolutePath())) {
- //noinspection AssignmentToStaticFieldFromInstanceMethod
- StudyInitialConfigurator.UPDATE_PROJECT = false;
+ if (myCourse != null && !myCourse.isUpToDate()) {
+ myCourse.setUpToDate(true);
updateCourse();
}
ApplicationManager.getApplication().invokeLater(new DumbAwareRunnable() {
}
private void updateCourse() {
- final File userCourseDir = new File(PathManager.getConfigPath(), StudyNames.COURSES);
- final File courseDir = new File(userCourseDir, StudyNames.INTRODUCTION_COURSE);
+ if (myCourse == null) {
+ return;
+ }
+ File resourceFile = new File(myCourse.getResourcePath());
+ if (!resourceFile.exists()) {
+ return;
+ }
+ final File courseDir = resourceFile.getParentFile();
+ if (!courseDir.exists()) {
+ return;
+ }
final File[] files = courseDir.listFiles();
if (files == null) return;
for (File lesson : files) {