Verified Owner
Top Inners Fields Constructors Methods
org.jabref.gui.groups

public Class GroupDialogView

extends BaseDialog<AbstractGroup>
Class Inheritance
Imports
java.util.Arrays, .EnumMap, .LinkedHashSet, .List, .Locale, .Optional, .SequencedSet, java.util.stream.Collectors, javafx.application.Platform, javafx.collections.FXCollections, .ObservableList, javafx.collections.transformation.FilteredList, javafx.event.ActionEvent, javafx.fxml.FXML, javafx.geometry.Insets, .Pos, javafx.scene.control.Button, .ButtonBar, .ButtonType, .CheckBox, .ColorPicker, .ComboBox, .RadioButton, .TextField, javafx.scene.layout.Border, .BorderStroke, .BorderStrokeStyle, .CornerRadii, .VBox, javafx.scene.paint.Color, org.jabref.gui.DialogService, .StateManager, org.jabref.gui.actions.ActionFactory, .StandardActions, org.jabref.gui.help.HelpAction, org.jabref.gui.icon.IconTheme, .IkonliIcon, .JabRefIcon, .JabRefMaterialDesignIcon, org.jabref.gui.preferences.GuiPreferences, org.jabref.gui.util.BaseDialog, .IconValidationDecorator, .ViewModelListCellFactory, org.jabref.logic.help.HelpFile, org.jabref.logic.l10n.Localization, org.jabref.model.database.BibDatabaseContext, org.jabref.model.entry.field.Field, .FieldFactory, org.jabref.model.groups.AbstractGroup, .DateGranularity, .GroupHierarchyType, .GroupTreeNode, org.jabref.model.search.SearchFlags, org.jabref.model.util.FileUpdateMonitor, com.airhacks.afterburner.views.ViewLoader, de.saxsys.mvvmfx.utils.validation.visualization.ControlsFxVisualizer, jakarta.inject.Inject, org.controlsfx.control.GridCell, .GridView, .PopOver, org.controlsfx.control.textfield.CustomTextField, org.jspecify.annotations.Nullable

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static record
private static class
public class

Field Summary

Modifier and TypeField and Description
private CheckBox
private TextField
private TextField
private TextField
private RadioButton
private TextField
private RadioButton
private RadioButton
private ColorPicker
private CheckBox
private final BibDatabaseContext
private ComboBox<Field>
private CheckBox
private ComboBox<DateGranularity>
private RadioButton
private TextField
private DialogService
private final @Nullable AbstractGroup
private RadioButton
private CheckBox
private RadioButton
private FileUpdateMonitor
private ComboBox<GroupHierarchyType>
private final EnumMap<GroupHierarchyType, String>
private final EnumMap<GroupHierarchyType, String>
private TextField
private Button
private CheckBox
private CheckBox
private TextField
private TextField
private RadioButton
private TextField
private final @Nullable GroupTreeNode
private GuiPreferences
private CheckBox
private CheckBox
private TextField
private RadioButton
private StateManager
private TextField
private RadioButton
private static boolean
private final de.saxsys.mvvmfx.utils.validation.visualization.ControlsFxVisualizer
private GroupDialogViewModel

Constructor Summary

AccessConstructor and Description
public
GroupDialogView(BibDatabaseContext currentDatabase, @Nullable GroupTreeNode parentNode, @Nullable AbstractGroup editedGroup, GroupDialogHeader groupDialogHeader)

Method Summary

Modifier and TypeMethod and Description
public void
private void
private @Nullable AbstractGroup
private void
Inherited from org.jabref.gui.util.BaseDialog:
bringToFrontcloseOnKeyBindingMatchfitWindowToContent

Field Detail

autoColorCheckboxback to summary
private CheckBox autoColorCheckbox
Annotations
@FXML
autoGroupKeywordsDeliminatorback to summary
private TextField autoGroupKeywordsDeliminator
Annotations
@FXML
autoGroupKeywordsFieldback to summary
private TextField autoGroupKeywordsField
Annotations
@FXML
autoGroupKeywordsHierarchicalDeliminatorback to summary
private TextField autoGroupKeywordsHierarchicalDeliminator
Annotations
@FXML
autoGroupKeywordsOptionback to summary
private RadioButton autoGroupKeywordsOption
Annotations
@FXML
autoGroupPersonsFieldback to summary
private TextField autoGroupPersonsField
Annotations
@FXML
autoGroupPersonsOptionback to summary
private RadioButton autoGroupPersonsOption
Annotations
@FXML
autoRadioButtonback to summary
private RadioButton autoRadioButton
Annotations
@FXML
colorFieldback to summary
private ColorPicker colorField
Annotations
@FXML
colorUseCheckboxback to summary
private CheckBox colorUseCheckbox
Annotations
@FXML
currentDatabaseback to summary
private final BibDatabaseContext currentDatabase
dateGroupFieldComboback to summary
private ComboBox<Field> dateGroupFieldCombo
Annotations
@FXML
dateGroupIncludeEmptyback to summary
private CheckBox dateGroupIncludeEmpty
Annotations
@FXML
dateGroupOptionComboback to summary
private ComboBox<DateGranularity> dateGroupOptionCombo
Annotations
@FXML
dateRadioButtonback to summary
private RadioButton dateRadioButton
Annotations
@FXML
descriptionFieldback to summary
private TextField descriptionField
Annotations
@FXML
dialogServiceback to summary
private DialogService dialogService
Annotations
@Inject
editedGroupback to summary
private final @Nullable AbstractGroup editedGroup
entryTypeRadioButtonback to summary
private RadioButton entryTypeRadioButton
Annotations
@FXML
explicitIncludeSelectedback to summary
private CheckBox explicitIncludeSelected
Annotations
@FXML
explicitRadioButtonback to summary
private RadioButton explicitRadioButton
Annotations
@FXML
fileUpdateMonitorback to summary
private FileUpdateMonitor fileUpdateMonitor
Annotations
@Inject
hierarchicalContextComboback to summary
private ComboBox<GroupHierarchyType> hierarchicalContextCombo
Annotations
@FXML
hierarchyTextback to summary
private final EnumMap<GroupHierarchyType, String> hierarchyText
hierarchyToolTipback to summary
private final EnumMap<GroupHierarchyType, String> hierarchyToolTip
iconFieldback to summary
private TextField iconField
Annotations
@FXML
iconPickerButtonback to summary
private Button iconPickerButton
Annotations
@FXML
keywordGroupCaseSensitiveback to summary
private CheckBox keywordGroupCaseSensitive
Annotations
@FXML
keywordGroupRegexback to summary
private CheckBox keywordGroupRegex
Annotations
@FXML
keywordGroupSearchFieldback to summary
private TextField keywordGroupSearchField
Annotations
@FXML
keywordGroupSearchTermback to summary
private TextField keywordGroupSearchTerm
Annotations
@FXML
keywordsRadioButtonback to summary
private RadioButton keywordsRadioButton
Annotations
@FXML
nameFieldback to summary
private TextField nameField
Annotations
@FXML
parentNodeback to summary
private final @Nullable GroupTreeNode parentNode
preferencesback to summary
private GuiPreferences preferences
Annotations
@Inject
searchGroupCaseSensitiveback to summary
private CheckBox searchGroupCaseSensitive
Annotations
@FXML
searchGroupRegexback to summary
private CheckBox searchGroupRegex
Annotations
@FXML
searchGroupSearchTermback to summary
private TextField searchGroupSearchTerm
Annotations
@FXML
searchRadioButtonback to summary
private RadioButton searchRadioButton
Annotations
@FXML
stateManagerback to summary
private StateManager stateManager
Annotations
@Inject
texGroupFilePathback to summary
private TextField texGroupFilePath
Annotations
@FXML
texRadioButtonback to summary
private RadioButton texRadioButton
Annotations
@FXML
useAutoColoringback to summary
private static boolean useAutoColoring
validationVisualizerback to summary
private final de.saxsys.mvvmfx.utils.validation.visualization.ControlsFxVisualizer validationVisualizer
viewModelback to summary
private GroupDialogViewModel viewModel

Constructor Detail

GroupDialogViewback to summary
public GroupDialogView(BibDatabaseContext currentDatabase, @Nullable GroupTreeNode parentNode, @Nullable AbstractGroup editedGroup, GroupDialogHeader groupDialogHeader)

Method Detail

initializeback to summary
public void initialize()
Annotations
@FXML
openIconPickerback to summary
private void openIconPicker()
Annotations
@FXML
parentGroupback to summary
private @Nullable AbstractGroup parentGroup()
texGroupBrowseback to summary
private void texGroupBrowse()
Annotations
@FXML
org.jabref.gui.groups back to summary

private final Record GroupDialogView.GroupIconPickerItem

extends Record
Class Inheritance
Record Components
icon:JabRefIcon 
persistedIdentifier:String 
searchText:String 

Field Summary

Modifier and TypeField and Description
private final JabRefIcon
icon

Record Component accessed by icon().

private final String
persistedIdentifier

Record Component accessed by persistedIdentifier().

private final String
searchText

Record Component accessed by searchText().

Constructor Summary

AccessConstructor and Description
private
GroupIconPickerItem(JabRefIcon icon, String persistedIdentifier, String searchText)

Method Summary

Modifier and TypeMethod and Description
public final boolean
equals(Object o)

Implements abstract java.lang.Record.equals.

Indicates whether some other object is "equal to" this one.

public final int
hashCode()

Implements abstract java.lang.Record.hashCode.

Returns a hash code value for the record.

public JabRefIcon
icon()

Record Component getter of icon.

public String
persistedIdentifier()

Record Component getter of persistedIdentifier.

public String
searchText()

Record Component getter of searchText.

public final String
toString()

Implements abstract java.lang.Record.toString.

Returns a string representation of the record.

Field Detail

iconback to summary
private final JabRefIcon icon

Record Component accessed by icon().

persistedIdentifierback to summary
private final String persistedIdentifier

Record Component accessed by persistedIdentifier().

searchTextback to summary
private final String searchText

Record Component accessed by searchText().

Constructor Detail

GroupIconPickerItemback to summary
private GroupIconPickerItem(JabRefIcon icon, String persistedIdentifier, String searchText)

Method Detail

equalsback to summary
public final boolean equals(Object o)

Implements abstract java.lang.Record.equals.

Doc from java.lang.Record.equals.

Indicates whether some other object is "equal to" this one. In addition to the general contract of Object.equals, record classes must further obey the invariant that when a record instance is "copied" by passing the result of the record component accessor methods to the canonical constructor, as follows:

    R copy = new R(r.c1(), r.c2(), ..., r.cn());
then it must be the case that r.equals(copy).
hashCodeback to summary
public final int hashCode()

Implements abstract java.lang.Record.hashCode.

Doc from java.lang.Record.hashCode.

Returns a hash code value for the record. Obeys the general contract of Object.hashCode. For records, hashing behavior is constrained by the refined contract of Record.equals, so that any two records created from the same components must have the same hash code.

iconback to summary
public JabRefIcon icon()

Record Component getter of icon.

persistedIdentifierback to summary
public String persistedIdentifier()

Record Component getter of persistedIdentifier.

searchTextback to summary
public String searchText()

Record Component getter of searchText.

toStringback to summary
public final String toString()

Implements abstract java.lang.Record.toString.

Doc from java.lang.Record.toString.

Returns a string representation of the record. In accordance with the general contract of Object#toString(), the toString method returns a string that "textually represents" this record. The result should be a concise but informative representation that is easy for a person to read.

In addition to this general contract, record classes must further participate in the invariant that any two records which are equal must produce equal strings. This invariant is necessarily relaxed in the rare case where corresponding equal component values might fail to produce equal strings for themselves.

org.jabref.gui.groups back to summary

private final Class GroupDialogView.GroupIconPickerItems

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private static final List<GroupDialogView.GroupIconPickerItem>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static List<GroupDialogView.GroupIconPickerItem>
load()

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ALLback to summary
private static final List<GroupDialogView.GroupIconPickerItem> ALL

Constructor Detail

GroupIconPickerItemsback to summary
private GroupIconPickerItems()

Method Detail

loadback to summary
private static List<GroupDialogView.GroupIconPickerItem> load()
org.jabref.gui.groups back to summary

public Class GroupDialogView.IkonliCell

extends GridCell<GroupDialogView.GroupIconPickerItem>
Class Inheritance

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
updateItem(GroupDialogView.GroupIconPickerItem ikon, boolean empty)

Overrides javafx.scene.control.Cell.updateItem.

The updateItem method should not be called by developers, but it is the best method for developers to override to allow for them to customise the visuals of the cell.

Inherited from org.controlsfx.control.GridCell:
createDefaultSkingetGridViewgridViewPropertyupdateGridView

Constructor Detail

IkonliCellback to summary
public IkonliCell()

Method Detail

updateItemback to summary
protected void updateItem(GroupDialogView.GroupIconPickerItem ikon, boolean empty)

Overrides javafx.scene.control.Cell.updateItem.

Doc from javafx.scene.control.Cell.updateItem.

The updateItem method should not be called by developers, but it is the best method for developers to override to allow for them to customise the visuals of the cell. To clarify, developers should never call this method in their code (they should leave it up to the UI control, such as the javafx.scene.control.ListView control) to call this method. However, the purpose of having the updateItem method is so that developers, when specifying custom cell factories (again, like the ListView cell factory), the updateItem method can be overridden to allow for complete customisation of the cell.

It is very important that subclasses of Cell override the updateItem method properly, as failure to do so will lead to issues such as blank cells or cells with unexpected content appearing within them. Here is an example of how to properly override the updateItem method:

protected void updateItem(T item, boolean empty) {
    super.updateItem(item, empty);

    if (empty || item == null) {
        setText(null);
        setGraphic(null);
    } else {
        setText(item.toString());
    }
}

Note in this code sample two important points:

  1. We call the super.updateItem(T, boolean) method. If this is not done, the item and empty properties are not correctly set, and you are likely to end up with graphical issues.
  2. We test for the empty condition, and if true, we set the text and graphic properties to null. If we do not do this, it is almost guaranteed that end users will see graphical artifacts in cells unexpectedly.
Annotations
@Override