package org.jabref.gui.fieldeditors; import java.util.Optional; import org.jabref.logic.journals.JournalAbbreviationLoader; import org.jabref.logic.journals.JournalAbbreviationPreferences; import org.jabref.logic.journals.JournalAbbreviationRepository; import org.jabref.model.strings.StringUtil; public class JournalEditorViewModel extends AbstractEditorViewModel { private final JournalAbbreviationLoader journalAbbreviationLoader; private final JournalAbbreviationPreferences journalAbbreviationPreferences; public JournalEditorViewModel(JournalAbbreviationLoader journalAbbreviationLoader, JournalAbbreviationPreferences journalAbbreviationPreferences) { this.journalAbbreviationLoader = journalAbbreviationLoader; this.journalAbbreviationPreferences = journalAbbreviationPreferences; } public void toggleAbbreviation() { if (StringUtil.isBlank(text.get())) { return; } JournalAbbreviationRepository abbreviationRepository = journalAbbreviationLoader.getRepository(journalAbbreviationPreferences); if (abbreviationRepository.isKnownName(text.get())) { Optional<String> nextAbbreviation = abbreviationRepository.getNextAbbreviation(text.get()); if (nextAbbreviation.isPresent()) { text.set(nextAbbreviation.get()); // TODO: Add undo //panel.getUndoManager().addEdit(new UndoableFieldChange(entry, editor.getFieldName(), text, nextAbbreviation)); } } } }