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

public Class GroupTreeView

extends BorderPane
Class Inheritance
Imports
java.lang.reflect.InvocationTargetException, .Method, java.text.DecimalFormat, java.time.Duration, java.util.ArrayList, .LinkedList, .List, .Objects, .Optional, java.util.stream.Collectors, javafx.application.Platform, javafx.beans.binding.Bindings, javafx.beans.property.ObjectProperty, javafx.css.PseudoClass, javafx.geometry.Orientation, javafx.scene.Node, javafx.scene.control.Button, .ContextMenu, .Control, .Menu, .MenuItem, .ScrollBar, .SelectionMode, .SeparatorMenuItem, .TextField, .Tooltip, .TreeItem, .TreeTableColumn, .TreeTableRow, .TreeTableView, javafx.scene.input.ClipboardContent, .DragEvent, .Dragboard, .MouseButton, .MouseEvent, .TransferMode, javafx.scene.layout.BorderPane, .HBox, .Priority, .StackPane, javafx.scene.text.Text, org.jabref.gui.DialogService, .DragAndDropDataFormats, .StateManager, org.jabref.gui.actions.ActionFactory, .SimpleCommand, .StandardActions, org.jabref.gui.search.SearchTextField, org.jabref.gui.util.BindingsHelper, .ControlHelper, .CustomLocalDragboard, .RecursiveTreeItem, .TaskExecutor, .ViewModelTreeTableCellFactory, .ViewModelTreeTableRowFactory, org.jabref.logic.l10n.Localization, org.jabref.model.entry.BibEntry, org.jabref.model.groups.AllEntriesGroup, org.jabref.preferences.PreferencesService, com.tobiasdiez.easybind.EasyBind, org.controlsfx.control.textfield.CustomTextField, org.controlsfx.control.textfield.TextFields, org.reactfx.util.FxTimer, org.reactfx.util.Timer, org.slf4j.Logger, .LoggerFactory

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
private static class

Field Summary

Modifier and TypeField and Description
private double
private final DialogService
private GroupTreeView.DragExpansionHandler
private TreeTableColumn<GroupNodeViewModel, GroupNodeViewModel>
private TreeTableView<GroupNodeViewModel>
private CustomLocalDragboard
private static final Logger
private double
private TreeTableColumn<GroupNodeViewModel, GroupNodeViewModel>
private TreeTableColumn<GroupNodeViewModel, GroupNodeViewModel>
private final PreferencesService
private static final PseudoClass
private static final PseudoClass
private static final PseudoClass
private static final PseudoClass
private static final double
private double
private org.reactfx.util.Timer
private double
private org.controlsfx.control.textfield.CustomTextField
private final StateManager
private final TaskExecutor
private double
private GroupTreeViewModel

Constructor Summary

AccessConstructor and Description
public
GroupTreeView(TaskExecutor taskExecutor, StateManager stateManager, PreferencesService preferencesService, DialogService dialogService)

Note

This panel is deliberately not created in fxml, since parsing equivalent fxml takes about 500 msecs

Method Summary

Modifier and TypeMethod and Description
private void
private ContextMenu
private void
private StackPane
private StackPane
private String
private Optional<TreeItem<GroupNodeViewModel>>
private Optional<TreeItem<GroupNodeViewModel>>
private Optional<ScrollBar>
private void
private void
private void
private void
private void
private void
public void
requestFocusGroupTree()

Focus on GroupTree

private void
private void
selectNode(GroupNodeViewModel value, boolean expandParents)

private void
setupClearButtonField(org.controlsfx.control.textfield.CustomTextField customTextField)

private void
private void
Inherited from javafx.scene.layout.BorderPane:
bottomPropertycenterPropertyclearConstraintscomputeMinHeightcomputeMinWidthcomputePrefHeightcomputePrefWidthgetAlignmentgetBottomgetCentergetContentBiasgetLeftgetMargingetRightgetToplayoutChildrenleftPropertyrightPropertysetAlignmentsetBottomsetCentersetLeftsetMarginsetRightsetToptopProperty

Field Detail

baseFactorback to summary
private double baseFactor
dialogServiceback to summary
private final DialogService dialogService
dragExpansionHandlerback to summary
private GroupTreeView.DragExpansionHandler dragExpansionHandler
expansionNodeColumnback to summary
private TreeTableColumn<GroupNodeViewModel, GroupNodeViewModel> expansionNodeColumn
groupTreeback to summary
private TreeTableView<GroupNodeViewModel> groupTree
localDragboardback to summary
private CustomLocalDragboard localDragboard
LOGGERback to summary
private static final Logger LOGGER
lowerBorderback to summary
private double lowerBorder
mainColumnback to summary
private TreeTableColumn<GroupNodeViewModel, GroupNodeViewModel> mainColumn
numberColumnback to summary
private TreeTableColumn<GroupNodeViewModel, GroupNodeViewModel> numberColumn
preferencesServiceback to summary
private final PreferencesService preferencesService
PSEUDOCLASS_ALLSELECTEDback to summary
private static final PseudoClass PSEUDOCLASS_ALLSELECTED
PSEUDOCLASS_ANYSELECTEDback to summary
private static final PseudoClass PSEUDOCLASS_ANYSELECTED
PSEUDOCLASS_ROOTELEMENTback to summary
private static final PseudoClass PSEUDOCLASS_ROOTELEMENT
PSEUDOCLASS_SUBELEMENTback to summary
private static final PseudoClass PSEUDOCLASS_SUBELEMENT
SCROLL_SPEED_UPback to summary
private static final double SCROLL_SPEED_UP
scrollableAreaHeightback to summary
private double scrollableAreaHeight
scrollTimerback to summary
private org.reactfx.util.Timer scrollTimer
scrollVelocityback to summary
private double scrollVelocity
searchFieldback to summary
private org.controlsfx.control.textfield.CustomTextField searchField
stateManagerback to summary
private final StateManager stateManager
taskExecutorback to summary
private final TaskExecutor taskExecutor
upperBorderback to summary
private double upperBorder
viewModelback to summary
private GroupTreeViewModel viewModel

Constructor Detail

GroupTreeViewback to summary
public GroupTreeView(TaskExecutor taskExecutor, StateManager stateManager, PreferencesService preferencesService, DialogService dialogService)

Note

This panel is deliberately not created in fxml, since parsing equivalent fxml takes about 500 msecs

Method Detail

addNewGroupback to summary
private void addNewGroup()
createContextMenuForGroupback to summary
private ContextMenu createContextMenuForGroup(GroupNodeViewModel group)
createNodesback to summary
private void createNodes()
createNumberCellback to summary
private StackPane createNumberCell(GroupNodeViewModel group)
getArrowCellback to summary
private StackPane getArrowCell(GroupNodeViewModel viewModel)
getFormattedNumberback to summary
private String getFormattedNumber(int hits)
getTreeItemByValueback to summary
private Optional<TreeItem<GroupNodeViewModel>> getTreeItemByValue(GroupNodeViewModel value)
getTreeItemByValueback to summary
private Optional<TreeItem<GroupNodeViewModel>> getTreeItemByValue(TreeItem<GroupNodeViewModel> root, GroupNodeViewModel value)
getVerticalScrollbarback to summary
private Optional<ScrollBar> getVerticalScrollbar()
handleOnDragDetectedback to summary
private void handleOnDragDetected(TreeTableRow<GroupNodeViewModel> row, GroupNodeViewModel groupViewModel, MouseEvent event)
handleOnDragDroppedback to summary
private void handleOnDragDropped(TreeTableRow<GroupNodeViewModel> row, GroupNodeViewModel originalItem, DragEvent event)
handleOnDragExitedback to summary
private void handleOnDragExited(TreeTableRow<GroupNodeViewModel> row, GroupNodeViewModel fieldViewModel, DragEvent dragEvent)
handleOnDragOverback to summary
private void handleOnDragOver(TreeTableRow<GroupNodeViewModel> row, GroupNodeViewModel originalItem, DragEvent event)
initializeback to summary
private void initialize()
initScrollingback to summary
private void initScrolling()
requestFocusGroupTreeback to summary
public void requestFocusGroupTree()

Focus on GroupTree

selectNodeback to summary
private void selectNode(GroupNodeViewModel value)
selectNodeback to summary
private void selectNode(GroupNodeViewModel value, boolean expandParents)
setupClearButtonFieldback to summary
private void setupClearButtonField(org.controlsfx.control.textfield.CustomTextField customTextField)
setupDragScrollingback to summary
private void setupDragScrolling()
updateSelectionback to summary
private void updateSelection(List<TreeItem<GroupNodeViewModel>> newSelectedGroups)
org.jabref.gui.groups back to summary

private Class GroupTreeView.ContextAction

extends SimpleCommand
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final StandardActions
private final GroupNodeViewModel
Inherited from org.jabref.gui.actions.SimpleCommand:
statusMessage

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
Inherited from org.jabref.gui.actions.SimpleCommand:
getProgressprogressPropertysetExecutablestatusMessageProperty

Field Detail

commandback to summary
private final StandardActions command
groupback to summary
private final GroupNodeViewModel group

Constructor Detail

ContextActionback to summary
public ContextAction(StandardActions command, GroupNodeViewModel group)

Method Detail

executeback to summary
public void execute()
Annotations
@Override
org.jabref.gui.groups back to summary

private Class GroupTreeView.DragExpansionHandler

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private static final long
private TreeItem<GroupNodeViewModel>
private long

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

DRAG_TIME_BEFORE_EXPANDING_MSback to summary
private static final long DRAG_TIME_BEFORE_EXPANDING_MS
draggedItemback to summary
private TreeItem<GroupNodeViewModel> draggedItem
dragStartedback to summary
private long dragStarted

Constructor Detail

DragExpansionHandlerback to summary
private DragExpansionHandler()

Method Detail

expandGroupback to summary
public void expandGroup(TreeItem<GroupNodeViewModel> treeItem)