use of com.intellij.psi.PsiDirectory in project intellij-plugins by StepicOrg.
the class NavBarModelExtensionUtils method getPresentableText.
@Nullable
public static String getPresentableText(@Nullable final Object object) {
if (object instanceof Project) {
Project project = (Project) object;
StudyNode root = StepikProjectManager.getProjectRoot(project);
if (root == null) {
return null;
}
return root.getName();
}
if (object instanceof PsiDirectory) {
PsiDirectory psiDirectory = (PsiDirectory) object;
PresentationData data = new PresentationData();
updatePresentationData(data, psiDirectory);
String text = data.getPresentableText();
if (text != null)
return text;
}
return null;
}
use of com.intellij.psi.PsiDirectory in project intellij-community by JetBrains.
the class CCChangeCourseInfo method update.
@Override
public void update(@NotNull AnActionEvent event) {
final Project project = event.getProject();
final Presentation presentation = event.getPresentation();
if (project == null) {
return;
}
presentation.setEnabledAndVisible(false);
if (!CCUtils.isCourseCreator(project)) {
return;
}
final IdeView view = event.getData(LangDataKeys.IDE_VIEW);
if (view == null) {
return;
}
final PsiDirectory[] directories = view.getDirectories();
if (directories.length == 0) {
return;
}
presentation.setEnabledAndVisible(true);
}
use of com.intellij.psi.PsiDirectory in project intellij-community by JetBrains.
the class CCCreateLesson method createItemDir.
@Override
@Nullable
protected PsiDirectory createItemDir(@NotNull final Project project, @NotNull final StudyItem item, @Nullable final IdeView view, @NotNull final PsiDirectory parentDirectory, @NotNull final Course course) {
CCLessonCreator creator = CCLessonCreator.INSTANCE.forLanguage(course.getLanguageById());
if (creator != null) {
return creator.createLesson(project, item, view, parentDirectory, course);
}
final PsiDirectory[] lessonDirectory = new PsiDirectory[1];
ApplicationManager.getApplication().runWriteAction(() -> {
lessonDirectory[0] = DirectoryUtil.createSubdirectories(EduNames.LESSON + item.getIndex(), parentDirectory, "\\/");
});
if (lessonDirectory[0] != null) {
if (view != null) {
view.selectElement(lessonDirectory[0]);
}
}
return lessonDirectory[0];
}
use of com.intellij.psi.PsiDirectory in project intellij-community by JetBrains.
the class CCCreateStudyItemActionBase method update.
@Override
public void update(@NotNull AnActionEvent event) {
final Presentation presentation = event.getPresentation();
presentation.setEnabledAndVisible(false);
final Project project = event.getData(CommonDataKeys.PROJECT);
final IdeView view = event.getData(LangDataKeys.IDE_VIEW);
if (project == null || view == null) {
return;
}
if (!StudyUtils.isStudyProject(project) || !CCUtils.isCourseCreator(project)) {
return;
}
final PsiDirectory[] directories = view.getDirectories();
if (directories.length == 0) {
return;
}
final PsiDirectory sourceDirectory = DirectoryChooserUtil.getOrChooseDirectory(view);
final Course course = StudyTaskManager.getInstance(project).getCourse();
if (course == null || sourceDirectory == null) {
return;
}
if (!isAddedAsLast(sourceDirectory, project, course) && getThresholdItem(course, sourceDirectory) == null) {
return;
}
if (CommonDataKeys.PSI_FILE.getData(event.getDataContext()) != null) {
return;
}
presentation.setEnabledAndVisible(true);
}
use of com.intellij.psi.PsiDirectory in project intellij-community by JetBrains.
the class CCCreateStudyItemActionBase method actionPerformed.
@Override
public void actionPerformed(AnActionEvent e) {
final IdeView view = e.getData(LangDataKeys.IDE_VIEW);
final Project project = e.getProject();
if (view == null || project == null) {
return;
}
final PsiDirectory directory = DirectoryChooserUtil.getOrChooseDirectory(view);
if (directory == null)
return;
final Course course = StudyTaskManager.getInstance(project).getCourse();
if (course == null) {
return;
}
createItem(view, project, directory, course);
}
Aggregations