Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to colored group indicator for cited entries #7173

Merged
merged 35 commits into from
Jan 13, 2021
Merged
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
42dc97b
Fix matched groups binding
k3KAW8Pnf7mkmdSMPHz27 Dec 5, 2020
9b2c9b1
Code style and typos
k3KAW8Pnf7mkmdSMPHz27 Dec 7, 2020
72e75b6
Extend TexGroup with Observable
k3KAW8Pnf7mkmdSMPHz27 Dec 8, 2020
ca85073
Add missed code style change
k3KAW8Pnf7mkmdSMPHz27 Dec 8, 2020
55845ce
Revert parts of matched groups binding
k3KAW8Pnf7mkmdSMPHz27 Dec 14, 2020
e5324fa
Change data structure of stored listeners
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
0520009
Fix managing listeners of Observable groups
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
beb1a3e
Fix display of group count when using TexGroups
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
ee7296e
Fix use of deprecated setGroup
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
20d5e16
Remove check for null value
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
68a0a5d
Fix execution thread
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
a2972a9
Fix updating entries in selected groups
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
3d24c67
Fix concurrent modification issue
k3KAW8Pnf7mkmdSMPHz27 Dec 16, 2020
ca0c800
Merge branch 'master' into fix-for-issue-6394
k3KAW8Pnf7mkmdSMPHz27 Dec 21, 2020
21f7aae
Add MetaData GroupUpdatedEvent without saving
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
8501704
Merge branch 'master' into fix-for-issue-6394
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
536c96b
Add a GroupInvalidatedEvent
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
54c7e3d
Update JavaDoc
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
45d8c22
Add EventBus adapter
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
98ca673
Fix invalidation listener
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
410b8fa
Fix minor mistakes
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
2353e4d
Fix GroupInvalidatedEvent
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
d754190
Fix GroupInvalidatedEvent
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
c7fb44e
Refactoring for readability
k3KAW8Pnf7mkmdSMPHz27 Dec 23, 2020
338af18
Remove empty class
k3KAW8Pnf7mkmdSMPHz27 Dec 26, 2020
ced6720
Add JavaDoc to GroupInvalidatedEventBusAdapter
k3KAW8Pnf7mkmdSMPHz27 Dec 26, 2020
f64b215
Fix CheckStyle
k3KAW8Pnf7mkmdSMPHz27 Dec 28, 2020
996b0fe
Fix using an ObservableOptional root group wrapper
k3KAW8Pnf7mkmdSMPHz27 Dec 28, 2020
996329f
Refactor for readability
k3KAW8Pnf7mkmdSMPHz27 Dec 28, 2020
605b6bd
Drop update for groups other than TexGroup
k3KAW8Pnf7mkmdSMPHz27 Dec 28, 2020
73d9af9
Change where switch to JavaFX thread occurs
k3KAW8Pnf7mkmdSMPHz27 Dec 28, 2020
9d4847c
Add UiThread wrapper for groupsRootBinding
k3KAW8Pnf7mkmdSMPHz27 Jan 3, 2021
34c98b3
Updates CHANGELOG.md
k3KAW8Pnf7mkmdSMPHz27 Jan 3, 2021
f4d051d
Merge branch 'master' into fix-for-issue-6394
k3KAW8Pnf7mkmdSMPHz27 Jan 3, 2021
6c98807
Move the UI thread switch to View-Model
k3KAW8Pnf7mkmdSMPHz27 Jan 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 27 additions & 13 deletions src/main/java/org/jabref/gui/maintable/BibEntryTableViewModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Collectors;

import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.binding.ObjectBinding;
import javafx.beans.value.ObservableValue;

import org.jabref.gui.specialfields.SpecialFieldValueViewModel;
Expand All @@ -24,7 +25,9 @@
import org.jabref.model.entry.field.StandardField;
import org.jabref.model.groups.AbstractGroup;
import org.jabref.model.groups.GroupTreeNode;
import org.jabref.model.groups.event.GroupUpdatedEvent;

import com.google.common.eventbus.Subscribe;
import com.tobiasdiez.easybind.EasyBind;
import com.tobiasdiez.easybind.EasyBinding;
import com.tobiasdiez.easybind.optional.OptionalBinding;
Expand Down Expand Up @@ -68,18 +71,29 @@ public BibEntry getEntry() {
}

private static ObservableValue<List<AbstractGroup>> createMatchedGroupsBinding(BibDatabaseContext database, BibEntry entry) {
Optional<GroupTreeNode> root = database.getMetaData().getGroups();
if (root.isPresent()) {
return EasyBind.map(entry.getFieldBinding(StandardField.GROUPS), field -> {
List<AbstractGroup> groups = root.get().getMatchingGroups(entry)
.stream()
.map(GroupTreeNode::getGroup)
.collect(Collectors.toList());
groups.remove(root.get().getGroup());
return groups;
});
}
return new SimpleObjectProperty<>(Collections.emptyList());
ObservableValue<List<AbstractGroup>> groupsBinding = new ObjectBinding<List<AbstractGroup>>() {
{
bind(entry.getFieldsObservable(), entry.typeProperty());
k3KAW8Pnf7mkmdSMPHz27 marked this conversation as resolved.
Show resolved Hide resolved
}

@Override
protected List<AbstractGroup> computeValue() {
Optional<GroupTreeNode> rootGroup = database.getMetaData().getGroups();
return rootGroup.map(groupTreeNode ->
groupTreeNode.getMatchingGroups(entry).stream()
.map(GroupTreeNode::getGroup)
.filter(Predicate.not(Predicate.isEqual(groupTreeNode.getGroup())))
.collect(Collectors.toList()))
.orElse(Collections.emptyList());
}

@Subscribe
public void listen(GroupUpdatedEvent groupUpdatedEvent) {
this.invalidate();
}
};
database.getMetaData().registerListener(groupsBinding);
return groupsBinding;
}

public OptionalBinding<String> getField(Field field) {
Expand Down