package org.peerbox.presenter.settings.synchronization; import java.nio.file.Path; import java.util.HashSet; import java.util.Set; import javafx.beans.property.SetProperty; import javafx.beans.property.SimpleSetProperty; import javafx.collections.FXCollections; import javafx.scene.control.Label; import org.hive2hive.core.model.UserPermission; public class PathItem{ private Path path; private boolean isFile; private SetProperty<UserPermission> permissions; private Label label = new Label(); public PathItem(Path path) { this(path, true, new HashSet<UserPermission>()); } public PathItem(Path path, boolean isFile, Set<UserPermission> userPermissions) { this.path = path; setIsFile(isFile); this.permissions = new SimpleSetProperty<UserPermission>(FXCollections.observableSet(userPermissions)); } public void bindPermissionsTo(SetProperty<UserPermission> other){ Set<UserPermission> oldPermissions = new HashSet<UserPermission>(getPermissions()); getPermissionsSetProperty().bindContent(other); getPermissionsSetProperty().addAll(oldPermissions); } public Path getPath() { return path; } public Set<UserPermission> getPermissions(){ return permissions; } public SetProperty<UserPermission> getPermissionsSetProperty(){ return permissions; } public boolean isFile() { return isFile; } private void setIsFile(boolean isFile) { this.isFile = isFile; } public boolean isFolder() { return !isFile; } @Override public String toString() { return ""; } public Label getLabel() { return label; } public void setLabel(Label label){ this.label = label; } }