Skip to content

Commit 23c6ac6

Browse files
committed
add properties to LinkedFiel
1 parent d985361 commit 23c6ac6

File tree

4 files changed

+32
-17
lines changed

4 files changed

+32
-17
lines changed

src/main/java/org/jabref/gui/fieldeditors/LinkedFileViewModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public void acceptAsLinked() {
107107
}
108108

109109
public Observable[] getObservables() {
110-
return new Observable[] {this.downloadProgress, this.isAutomaticallyFound};
110+
return linkedFile.getObservables();
111111
}
112112

113113
public void open() {

src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ public LinkedFilesEditor(String fieldName, DialogService dialogService, BibDatab
5757
ControlHelper.loadFXMLForControl(this);
5858

5959
ViewModelListCellFactory<LinkedFileViewModel> cellFactory = new ViewModelListCellFactory<LinkedFileViewModel>()
60-
.withTooltip(LinkedFileViewModel::getDescription)
6160
.withGraphic(LinkedFilesEditor::createFileDisplay)
6261
.withContextMenu(this::createContextMenuForFile)
6362
.withOnMouseClickedEvent(this::handleItemMouseClick)

src/main/java/org/jabref/gui/fieldeditors/LinkedFilesEditorViewModel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public LinkedFilesEditorViewModel(String fieldName, AutoCompleteSuggestionProvid
6969
text,
7070
LinkedFilesEditorViewModel::getStringRepresentation,
7171
this::parseToFileViewModel);
72+
7273
}
7374

7475
private static String getStringRepresentation(List<LinkedFileViewModel> files) {

src/main/java/org/jabref/model/entry/LinkedFile.java

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@
88
import java.util.Objects;
99
import java.util.Optional;
1010

11+
import javafx.beans.Observable;
12+
import javafx.beans.property.BooleanProperty;
13+
import javafx.beans.property.DoubleProperty;
14+
import javafx.beans.property.SimpleBooleanProperty;
15+
import javafx.beans.property.SimpleDoubleProperty;
16+
import javafx.beans.property.SimpleStringProperty;
17+
import javafx.beans.property.StringProperty;
18+
1119
import org.jabref.model.database.BibDatabaseContext;
1220
import org.jabref.model.metadata.FileDirectoryPreferences;
1321
import org.jabref.model.util.FileHelper;
@@ -19,42 +27,49 @@
1927
public class LinkedFile implements Serializable {
2028

2129
private static final LinkedFile NULL_OBJECT = new LinkedFile("", "", "");
22-
private String description;
23-
private String link;
24-
private String fileType;
30+
private final StringProperty description = new SimpleStringProperty();
31+
private final StringProperty link = new SimpleStringProperty();
32+
private final StringProperty fileType = new SimpleStringProperty();
33+
private final DoubleProperty downloadProgress = new SimpleDoubleProperty(-1);
34+
private final BooleanProperty isAutomaticallyFound = new SimpleBooleanProperty(false);
2535

2636
public LinkedFile(String description, String link, String fileType) {
27-
this.description = Objects.requireNonNull(description);
28-
this.link = Objects.requireNonNull(link);
29-
this.fileType = Objects.requireNonNull(fileType);
37+
this.description.setValue(Objects.requireNonNull(description));
38+
this.link.setValue(Objects.requireNonNull(link));
39+
this.fileType.setValue(Objects.requireNonNull(fileType));
3040
}
3141

3242
public LinkedFile(String description, URL link, String fileType) {
3343
this(description, Objects.requireNonNull(link).toString(), fileType);
3444
}
3545

3646
public String getFileType() {
37-
return fileType;
47+
return fileType.get();
3848
}
3949

4050
public void setFileType(String fileType) {
41-
this.fileType = fileType;
51+
this.fileType.setValue(fileType);
4252
}
4353

4454
public String getDescription() {
45-
return description;
55+
return description.get();
4656
}
4757

4858
public void setDescription(String description) {
49-
this.description = description;
59+
this.description.setValue(description);
60+
5061
}
5162

5263
public String getLink() {
53-
return link;
64+
return link.get();
5465
}
5566

5667
public void setLink(String link) {
57-
this.link = link;
68+
this.link.setValue(link);
69+
}
70+
71+
public Observable[] getObservables() {
72+
return new Observable[] {this.downloadProgress, this.isAutomaticallyFound};
5873
}
5974

6075
@Override
@@ -96,7 +111,7 @@ public boolean isEmpty() {
96111
}
97112

98113
public boolean isOnlineLink() {
99-
return link.startsWith("http://") || link.startsWith("https://") || link.contains("www.");
114+
return link.get().startsWith("http://") || link.get().startsWith("https://") || link.get().contains("www.");
100115
}
101116

102117
public Optional<Path> findIn(BibDatabaseContext databaseContext, FileDirectoryPreferences fileDirectoryPreferences) {
@@ -105,11 +120,11 @@ public Optional<Path> findIn(BibDatabaseContext databaseContext, FileDirectoryPr
105120
}
106121

107122
public Optional<Path> findIn(List<Path> directories) {
108-
Path file = Paths.get(link);
123+
Path file = Paths.get(link.get());
109124
if (file.isAbsolute() || directories.isEmpty()) {
110125
return Optional.of(file);
111126
} else {
112-
return FileHelper.expandFilenameAsPath(link, directories);
127+
return FileHelper.expandFilenameAsPath(link.get(), directories);
113128
}
114129
}
115130
}

0 commit comments

Comments
 (0)