mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EDU-658 Create placeholder without selection
This commit is contained in:
+13
-9
@@ -54,14 +54,13 @@ public class CCAddAnswerPlaceholder extends CCAnswerPlaceholderAction {
|
||||
}
|
||||
|
||||
final SelectionModel model = editor.getSelectionModel();
|
||||
final int offset = model.getSelectionStart();
|
||||
final int offset = model.hasSelection() ? model.getSelectionStart() : editor.getCaretModel().getOffset();
|
||||
final AnswerPlaceholder answerPlaceholder = new AnswerPlaceholder();
|
||||
|
||||
answerPlaceholder.setOffset(offset);
|
||||
answerPlaceholder.setUseLength(false);
|
||||
|
||||
String selectedText = model.getSelectedText();
|
||||
answerPlaceholder.setPossibleAnswer(selectedText);
|
||||
answerPlaceholder.setPossibleAnswer(model.hasSelection() ? model.getSelectedText() : EduNames.PLACEHOLDER);
|
||||
|
||||
CCCreateAnswerPlaceholderDialog dlg = new CCCreateAnswerPlaceholderDialog(project, answerPlaceholder);
|
||||
dlg.show();
|
||||
@@ -69,6 +68,10 @@ public class CCAddAnswerPlaceholder extends CCAnswerPlaceholderAction {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!model.hasSelection()) {
|
||||
DocumentUtil.writeInRunUndoTransparentAction(() -> document.insertString(offset, EduNames.PLACEHOLDER));
|
||||
}
|
||||
|
||||
TaskFile taskFile = state.getTaskFile();
|
||||
int index = taskFile.getAnswerPlaceholders().size() + 1;
|
||||
answerPlaceholder.setIndex(index);
|
||||
@@ -147,7 +150,7 @@ public class CCAddAnswerPlaceholder extends CCAnswerPlaceholderAction {
|
||||
presentation.setVisible(true);
|
||||
if (canAddPlaceholder(state) || canDeletePlaceholder(state)) {
|
||||
presentation.setEnabled(true);
|
||||
presentation.setText((state.getAnswerPlaceholder() == null ? "Add " : "Delete ") + EduNames.PLACEHOLDER);
|
||||
presentation.setText((state.getAnswerPlaceholder() == null ? "Add " : "Delete ") + EduNames.ANSWER_PLACEHOLDER);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,12 +158,13 @@ public class CCAddAnswerPlaceholder extends CCAnswerPlaceholderAction {
|
||||
private static boolean canAddPlaceholder(@NotNull CCState state) {
|
||||
Editor editor = state.getEditor();
|
||||
SelectionModel selectionModel = editor.getSelectionModel();
|
||||
if (!selectionModel.hasSelection()) {
|
||||
return false;
|
||||
if (selectionModel.hasSelection()) {
|
||||
int start = selectionModel.getSelectionStart();
|
||||
int end = selectionModel.getSelectionEnd();
|
||||
return !arePlaceholdersIntersect(state.getTaskFile(), start, end);
|
||||
}
|
||||
int start = selectionModel.getSelectionStart();
|
||||
int end = selectionModel.getSelectionEnd();
|
||||
return !arePlaceholdersIntersect(state.getTaskFile(), start, end);
|
||||
int offset = editor.getCaretModel().getOffset();
|
||||
return state.getTaskFile().getAnswerPlaceholder(offset) == null;
|
||||
}
|
||||
|
||||
private static boolean canDeletePlaceholder(@NotNull CCState state) {
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ import java.util.List;
|
||||
|
||||
public class CCDeleteAllAnswerPlaceholdersAction extends DumbAwareAction {
|
||||
|
||||
public static final String ACTION_NAME = "Delete All " + EduNames.PLACEHOLDER + "s";
|
||||
public static final String ACTION_NAME = "Delete All " + EduNames.ANSWER_PLACEHOLDER + "s";
|
||||
|
||||
public CCDeleteAllAnswerPlaceholdersAction() {
|
||||
super(ACTION_NAME);
|
||||
|
||||
@@ -46,7 +46,8 @@ public class EduNames {
|
||||
public static final String STUDY = "Study";
|
||||
public static final String ADAPTIVE = "Adaptive";
|
||||
|
||||
public static final String PLACEHOLDER = "Answer Placeholder";
|
||||
public static final String ANSWER_PLACEHOLDER = "Answer Placeholder";
|
||||
public static final String PLACEHOLDER = "placeholder";
|
||||
public static final String SRC = "src";
|
||||
private EduNames() {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user