Renamed classes

This commit is contained in:
Armin Schrenk
2025-03-21 15:03:31 +01:00
parent e8e2fcb0b3
commit cc8aa00326
7 changed files with 43 additions and 29 deletions

View File

@@ -0,0 +1,8 @@
package org.cryptomator.event;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.cryptofs.event.FilesystemEvent;
import java.nio.file.Path;
public record FSEventBucket(Vault vault, Path idPath, Class<? extends FilesystemEvent> c) {}

View File

@@ -0,0 +1,5 @@
package org.cryptomator.event;
import org.cryptomator.cryptofs.event.FilesystemEvent;
public record FSEventBucketContent(FilesystemEvent mostRecentEvent, int count) {}

View File

@@ -16,15 +16,10 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
//TODO: Rename to aggregator
@Singleton
public class FileSystemEventAggregator {
public record Key(Vault vault, Path idPath, Class<? extends FilesystemEvent> c) {};
public record Value(FilesystemEvent mostRecentEvent, int count) {}
private final ConcurrentHashMap<Key, Value> map;
private final ConcurrentHashMap<FSEventBucket, FSEventBucketContent> map;
private final AtomicBoolean hasUpdates;
@Inject
@@ -44,9 +39,9 @@ public class FileSystemEventAggregator {
hasUpdates.set(true);
map.compute(key, (k, val) -> {
if (val == null) {
return new Value(e, 1);
return new FSEventBucketContent(e, 1);
} else {
return new Value(e, val.count() + 1);
return new FSEventBucketContent(e, val.count() + 1);
}
});
@@ -55,7 +50,7 @@ public class FileSystemEventAggregator {
/**
* Removes an event bucket from the map.
*/
public Value remove(Key key) {
public FSEventBucketContent remove(FSEventBucket key) {
hasUpdates.set(true);
return map.remove(key);
}
@@ -80,7 +75,7 @@ public class FileSystemEventAggregator {
*
* @param target collection which is first cleared and then the EntrySet copied to.
*/
public void cloneTo(Collection<Map.Entry<Key, Value>> target) {
public void cloneTo(Collection<Map.Entry<FSEventBucket, FSEventBucketContent>> target) {
hasUpdates.set(false);
target.clear();
target.addAll(map.entrySet());
@@ -91,9 +86,9 @@ public class FileSystemEventAggregator {
*
* @param v Vault where the event occurred
* @param event Actual {@link FilesystemEvent}
* @return a {@link Key} used in the map and lru cache
* @return a {@link FSEventBucket} used in the map and lru cache
*/
private static Key computeKey(Vault v, FilesystemEvent event) {
private static FSEventBucket computeKey(Vault v, FilesystemEvent event) {
var p = switch (event) {
case DecryptionFailedEvent(_, Path ciphertextPath, _) -> ciphertextPath;
case ConflictResolvedEvent(_, _, _, _, Path resolvedCiphertext) -> resolvedCiphertext;
@@ -101,6 +96,6 @@ public class FileSystemEventAggregator {
case BrokenDirFileEvent(_, Path ciphertext) -> ciphertext;
case BrokenFileNodeEvent(_, _, Path ciphertext) -> ciphertext;
};
return new Key(v, p, event.getClass());
return new FSEventBucket(v, p, event.getClass());
}
}

View File

@@ -1,5 +1,7 @@
package org.cryptomator.ui.eventview;
import org.cryptomator.event.FSEventBucket;
import org.cryptomator.event.FSEventBucketContent;
import org.cryptomator.event.FileSystemEventAggregator;
import org.cryptomator.common.Nullable;
import org.cryptomator.common.ObservableUtil;
@@ -55,7 +57,7 @@ public class EventListCellController implements FxController {
@Nullable
private final RevealPathService revealService;
private final ResourceBundle resourceBundle;
private final ObjectProperty<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> eventEntry;
private final ObjectProperty<Map.Entry<FSEventBucket, FSEventBucketContent>> eventEntry;
private final StringProperty eventMessage;
private final StringProperty eventDescription;
private final ObjectProperty<FontAwesome5Icon> eventIcon;
@@ -108,7 +110,7 @@ public class EventListCellController implements FxController {
return vaultUnlocked.getValue() && (eventActionsMenu.isShowing() || root.isHover());
}
public void setEventEntry(@NotNull Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value> item) {
public void setEventEntry(@NotNull Map.Entry<FSEventBucket, FSEventBucketContent> item) {
eventEntry.set(item);
eventActionsMenu.hide();
eventActionsMenu.getItems().clear();

View File

@@ -1,6 +1,7 @@
package org.cryptomator.ui.eventview;
import org.cryptomator.event.FileSystemEventAggregator;
import org.cryptomator.event.FSEventBucket;
import org.cryptomator.event.FSEventBucketContent;
import org.cryptomator.ui.common.FxmlLoaderFactory;
import javax.inject.Inject;
@@ -15,7 +16,7 @@ import java.io.UncheckedIOException;
import java.util.Map;
@EventViewScoped
public class EventListCellFactory implements Callback<ListView<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>>, ListCell<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>>> {
public class EventListCellFactory implements Callback<ListView<Map.Entry<FSEventBucket, FSEventBucketContent>>, ListCell<Map.Entry<FSEventBucket, FSEventBucketContent>>> {
private static final String FXML_PATH = "/fxml/eventview_cell.fxml";
@@ -28,7 +29,7 @@ public class EventListCellFactory implements Callback<ListView<Map.Entry<FileSys
@Override
public ListCell<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> call(ListView<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> eventListView) {
public ListCell<Map.Entry<FSEventBucket, FSEventBucketContent>> call(ListView<Map.Entry<FSEventBucket, FSEventBucketContent>> eventListView) {
try {
FXMLLoader fxmlLoader = fxmlLoaders.load(FXML_PATH);
return new Cell(fxmlLoader.getRoot(), fxmlLoader.getController());
@@ -37,7 +38,7 @@ public class EventListCellFactory implements Callback<ListView<Map.Entry<FileSys
}
}
private static class Cell extends ListCell<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> {
private static class Cell extends ListCell<Map.Entry<FSEventBucket, FSEventBucketContent>> {
private final Parent root;
private final EventListCellController controller;
@@ -48,7 +49,7 @@ public class EventListCellFactory implements Callback<ListView<Map.Entry<FileSys
}
@Override
protected void updateItem(Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value> item, boolean empty) {
protected void updateItem(Map.Entry<FSEventBucket, FSEventBucketContent> item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {

View File

@@ -1,7 +1,8 @@
package org.cryptomator.ui.eventview;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.event.FileSystemEventAggregator;
import org.cryptomator.event.FSEventBucket;
import org.cryptomator.event.FSEventBucketContent;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.fxapp.EventsUpdateCheck;
@@ -22,9 +23,9 @@ import java.util.ResourceBundle;
@EventViewScoped
public class EventViewController implements FxController {
private final FilteredList<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> filteredEventList;
private final FilteredList<Map.Entry<FSEventBucket, FSEventBucketContent>> filteredEventList;
private final ObservableList<Vault> vaults;
private final SortedList<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> sortedEventList;
private final SortedList<Map.Entry<FSEventBucket, FSEventBucketContent>> sortedEventList;
private final ObservableList<Vault> choiceBoxEntries;
private final ResourceBundle resourceBundle;
private final EventListCellFactory cellFactory;
@@ -32,7 +33,7 @@ public class EventViewController implements FxController {
@FXML
ChoiceBox<Vault> vaultFilterChoiceBox;
@FXML
ListView<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> eventListView;
ListView<Map.Entry<FSEventBucket, FSEventBucketContent>> eventListView;
@Inject
public EventViewController(EventsUpdateCheck eventsUpdateCheck, ObservableList<Vault> vaults, ResourceBundle resourceBundle, EventListCellFactory cellFactory) {
@@ -48,11 +49,11 @@ public class EventViewController implements FxController {
* Comparsion method for the lru cache. During comparsion the map is accessed.
* First the entries are compared by the event timestamp, then vaultId, then identifying path and lastly by class name.
*
* @param left a {@link FileSystemEventAggregator.Key} object
* @param right another {@link FileSystemEventAggregator.Key} object, compared to {@code left}
* @param left a {@link FSEventBucket} object
* @param right another {@link FSEventBucket} object, compared to {@code left}
* @return a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
*/
private int compareBuckets(Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value> left, Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value> right) {
private int compareBuckets(Map.Entry<FSEventBucket, FSEventBucketContent> left, Map.Entry<FSEventBucket, FSEventBucketContent> right) {
var t1 = left.getValue().mostRecentEvent().getTimestamp();
var t2 = right.getValue().mostRecentEvent().getTimestamp();
var timeComparison = t1.compareTo(t2);

View File

@@ -1,5 +1,7 @@
package org.cryptomator.ui.fxapp;
import org.cryptomator.event.FSEventBucket;
import org.cryptomator.event.FSEventBucketContent;
import org.cryptomator.event.FileSystemEventAggregator;
import javax.inject.Inject;
@@ -17,7 +19,7 @@ import java.util.concurrent.TimeUnit;
@FxApplicationScoped
public class EventsUpdateCheck {
private final ObservableList<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> events;
private final ObservableList<Map.Entry<FSEventBucket, FSEventBucketContent>> events;
private final FileSystemEventAggregator eventRegistry;
private final ScheduledFuture<?> scheduledTask;
private final BooleanProperty unreadEvents;
@@ -35,7 +37,7 @@ public class EventsUpdateCheck {
//TODO: allow the task to be canceled (to enable ui actions, e.g. when the contextMenu is open, the list should not be updated
}
public ObservableList<Map.Entry<FileSystemEventAggregator.Key, FileSystemEventAggregator.Value>> getList() {
public ObservableList<Map.Entry<FSEventBucket, FSEventBucketContent>> getList() {
return events;
}