EDU-880 Get rid of getStudyProject

This commit is contained in:
Ekaterina Tuzova
2017-03-13 11:30:15 +03:00
parent 12fb478a34
commit 4bc881a4fe
7 changed files with 26 additions and 58 deletions
@@ -43,7 +43,6 @@ public class StudyTaskManager implements PersistentStateComponent<Element>, Dumb
public boolean myShouldUseJavaFx = StudyUtils.hasJavaFx();
private StudyToolWindow.StudyToolWindowMode myToolWindowMode = StudyToolWindow.StudyToolWindowMode.TEXT;
private boolean myTurnEditingMode = false;
private boolean myEnableTestingFromSamples = false;
@Transient private final Project myProject;
@@ -196,12 +195,5 @@ public class StudyTaskManager implements PersistentStateComponent<Element>, Dumb
public void setTurnEditingMode(boolean turnEditingMode) {
myTurnEditingMode = turnEditingMode;
}
public boolean isEnableTestingFromSamples() {
return myEnableTestingFromSamples;
}
public void setEnableTestingFromSamples(boolean enableTestingFromSamples) {
myEnableTestingFromSamples = enableTestingFromSamples;
}
}
@@ -25,7 +25,6 @@ import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.ui.MessageType;
import com.intellij.openapi.ui.popup.Balloon;
@@ -620,18 +619,6 @@ public class StudyUtils {
return course != null && EduNames.STUDY.equals(course.getCourseMode());
}
@Nullable
public static Project getStudyProject() {
Project studyProject = null;
Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
for (Project project : openProjects) {
if (StudyTaskManager.getInstance(project).getCourse() != null) {
studyProject = project;
}
}
return studyProject;
}
@NotNull
public static File getCourseDirectory(Course course) {
final File courseDirectory;
@@ -171,7 +171,7 @@ public class StudyCheckTask extends com.intellij.openapi.progress.Task.Backgroun
if (testOutput != null) {
// As tests in adaptive courses are created from
// samples and stored in task, to disable it we should ignore local testing results
if (StudyTaskManager.getInstance(myProject).isEnableTestingFromSamples() && !testOutput.isSuccess()) {
if (StepicUpdateSettings.getInstance().isEnableTestingFromSamples() && !testOutput.isSuccess()) {
onTaskFailed(testOutput.getMessage());
}
else {
@@ -17,12 +17,9 @@ package com.jetbrains.edu.learning.stepic;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.DocumentAdapter;
import com.intellij.ui.components.JBCheckBox;
import com.jetbrains.edu.learning.StudyTaskManager;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.settings.StudyOptionsProvider;
import org.jetbrains.annotations.NotNull;
@@ -38,7 +35,6 @@ public class StepicStudyOptions implements StudyOptionsProvider {
private JPasswordField myPasswordField;
private JPanel myPane;
private JBCheckBox myEnableTestingFromSamples;
private final Project myProject;
public StepicStudyOptions() {
myLoginTextField.getDocument().addDocumentListener(new DocumentAdapter() {
@@ -47,10 +43,7 @@ public class StepicStudyOptions implements StudyOptionsProvider {
erasePassword();
}
});
myProject = StudyUtils.getStudyProject();
if (myProject == null) {
myEnableTestingFromSamples.setEnabled(false);
}
myEnableTestingFromSamples.setEnabled(false);
}
private void erasePassword() {
@@ -86,12 +79,9 @@ public class StepicStudyOptions implements StudyOptionsProvider {
@Override
public void reset() {
Project project = StudyUtils.getStudyProject();
if (project != null) {
StudyTaskManager taskManager = StudyTaskManager.getInstance(project);
myEnableTestingFromSamples.setSelected(taskManager.isEnableTestingFromSamples());
}
final StepicUser user = StepicUpdateSettings.getInstance().getUser();
final StepicUpdateSettings stepikSettings = StepicUpdateSettings.getInstance();
myEnableTestingFromSamples.setSelected(stepikSettings.isEnableTestingFromSamples());
final StepicUser user = stepikSettings.getUser();
setLogin(user.getEmail());
setPassword(user.getPassword());
}
@@ -103,15 +93,12 @@ public class StepicStudyOptions implements StudyOptionsProvider {
@Override
public void apply() throws ConfigurationException {
if (myProject != null) {
StudyTaskManager taskManager = StudyTaskManager.getInstance(myProject);
if (isTestingFromSamplesEnabled() != taskManager.isEnableTestingFromSamples()) {
taskManager.setEnableTestingFromSamples(isTestingFromSamplesEnabled());
}
final StepicUpdateSettings stepikSettings = StepicUpdateSettings.getInstance();
if (isTestingFromSamplesEnabled() != stepikSettings.isEnableTestingFromSamples()) {
stepikSettings.setEnableTestingFromSamples(isTestingFromSamplesEnabled());
}
final StepicUser user = StepicUpdateSettings.getInstance().getUser();
final StepicUser user = stepikSettings.getUser();
final boolean isCredentialsModified = !getLogin().equals(user.getEmail()) || !getPassword().equals(user.getPassword());
if (isCredentialsModified) {
final String login = getLogin();
@@ -119,16 +106,15 @@ public class StepicStudyOptions implements StudyOptionsProvider {
if (!StringUtil.isEmptyOrSpaces(login) && !StringUtil.isEmptyOrSpaces(password)) {
// login to post credentials
final StepicUser[] stepicUser = new StepicUser[1];
final Project project = myProject == null ? ProjectUtil.guessCurrentProject(myPane) : myProject;
ProgressManager.getInstance().runProcessWithProgressSynchronously(
() -> {
ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true);
stepicUser[0] = StudyUtils.execCancelable(() -> EduStepicAuthorizedClient.login(login, password));
}, "Logging In", true,
project);
null);
if (stepicUser[0] != null && stepicUser[0].getAccessToken() != null) {
StepicUpdateSettings.getInstance().setUser(stepicUser[0]);
stepikSettings.setUser(stepicUser[0]);
}
else {
throw new ConfigurationException("Unable to login");
@@ -152,13 +138,9 @@ public class StepicStudyOptions implements StudyOptionsProvider {
}
public boolean isModified() {
final Project project = StudyUtils.getStudyProject();
boolean isTestOptionModified = false;
if (project != null) {
final StudyTaskManager taskManager = StudyTaskManager.getInstance(project);
isTestOptionModified = !isTestingFromSamplesEnabled() == taskManager.isEnableTestingFromSamples();
}
final StepicUser user = StepicUpdateSettings.getInstance().getUser();
final StepicUpdateSettings stepikSettings = StepicUpdateSettings.getInstance();
boolean isTestOptionModified = !isTestingFromSamplesEnabled() == stepikSettings.isEnableTestingFromSamples();
final StepicUser user = stepikSettings.getUser();
return !getLogin().equals(user.getEmail())
|| !getPassword().equals(user.getPassword())
@@ -12,6 +12,7 @@ import org.jetbrains.annotations.Nullable;
public class StepicUpdateSettings implements PersistentStateComponent<StepicUpdateSettings> {
private StepicUser myUser;
public long LAST_TIME_CHECKED = 0;
private boolean myEnableTestingFromSamples = false;
public StepicUpdateSettings() {
}
@@ -50,4 +51,11 @@ public class StepicUpdateSettings implements PersistentStateComponent<StepicUpda
myUser = user;
}
public boolean isEnableTestingFromSamples() {
return myEnableTestingFromSamples;
}
public void setEnableTestingFromSamples(boolean enableTestingFromSamples) {
myEnableTestingFromSamples = enableTestingFromSamples;
}
}
@@ -12,6 +12,7 @@ import com.intellij.openapi.editor.colors.EditorColorsScheme;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.StreamUtil;
import com.jetbrains.edu.learning.StudyPluginConfigurator;
import com.jetbrains.edu.learning.StudyUtils;
import com.jetbrains.edu.learning.navigation.StudyNavigator;
import javafx.application.Platform;
import javafx.concurrent.Worker;
@@ -134,7 +135,8 @@ public class StudyBrowserWindow extends JFrame {
});
}
public void loadContent(@NotNull final String content, @Nullable StudyPluginConfigurator configurator) {
public void loadContent(@NotNull final String content) {
StudyPluginConfigurator configurator = StudyUtils.getConfigurator(myProject);
if (configurator == null) {
Platform.runLater(() -> myEngine.loadContent(content));
}
@@ -15,8 +15,6 @@
*/
package com.jetbrains.edu.learning.ui;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectUtil;
import com.jetbrains.edu.learning.StudyPluginConfigurator;
import com.jetbrains.edu.learning.StudyUtils;
import org.jetbrains.annotations.NotNull;
@@ -49,7 +47,6 @@ public class StudyJavaFxToolWindow extends StudyToolWindow {
@Override
public void setText(@NotNull String text) {
StudyPluginConfigurator configurator = StudyUtils.getConfigurator(ProjectUtil.guessCurrentProject(this));
myBrowserWindow.loadContent(text, configurator);
myBrowserWindow.loadContent(text);
}
}