Skip to content

Commit f4847b1

Browse files
calixtusSiedlerchr
authored andcommitted
Reintroducing master table index column (#5844)
* Added master table index column * Added master table index column * l10n
1 parent 3656bf7 commit f4847b1

File tree

5 files changed

+31
-1
lines changed

5 files changed

+31
-1
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `#
1313

1414
### Changed
1515

16+
- We reintroduced the index column. [#5844](https://github.com/JabRef/jabref/pull/5844)
17+
1618
### Fixed
1719

1820
- We fixed an issue where the Medline fetcher was only working when JabRef was running from source. [#5645](https://github.com/JabRef/jabref/issues/5645)

src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import javax.swing.undo.UndoManager;
1212

13+
import javafx.beans.property.ReadOnlyObjectWrapper;
1314
import javafx.geometry.Insets;
1415
import javafx.geometry.Pos;
1516
import javafx.scene.Node;
@@ -22,6 +23,7 @@
2223
import javafx.scene.layout.Pane;
2324
import javafx.scene.paint.Color;
2425
import javafx.scene.shape.Rectangle;
26+
import javafx.scene.text.Text;
2527

2628
import org.jabref.Globals;
2729
import org.jabref.gui.DialogService;
@@ -82,6 +84,9 @@ public MainTableColumnFactory(BibDatabaseContext database, ColumnPreferences pre
8284
preferences.getColumns().forEach(column -> {
8385

8486
switch (column.getType()) {
87+
case INDEX:
88+
columns.add(createIndexColumn(column));
89+
break;
8590
case GROUPS:
8691
columns.add(createGroupColumn(column));
8792
break;
@@ -125,6 +130,24 @@ private void setExactWidth(TableColumn<?, ?> column, double width) {
125130
column.setMaxWidth(width);
126131
}
127132

133+
/**
134+
* Creates a text column to display any standard field.
135+
*/
136+
private TableColumn<BibEntryTableViewModel, String> createIndexColumn(MainTableColumnModel columnModel) {
137+
TableColumn<BibEntryTableViewModel, String> column = new MainTableColumn<>(columnModel);
138+
Node header = new Text("#");
139+
Tooltip.install(header, new Tooltip(MainTableColumnModel.Type.INDEX.getDisplayName()));
140+
column.setGraphic(header);
141+
column.setStyle("-fx-alignment: CENTER-RIGHT;");
142+
column.setCellValueFactory(cellData -> new ReadOnlyObjectWrapper<>(
143+
String.valueOf(cellData.getTableView().getItems().indexOf(cellData.getValue()) + 1)));
144+
new ValueTableCellFactory<BibEntryTableViewModel, String>()
145+
.withText(text -> text)
146+
.install(column);
147+
column.setSortable(false);
148+
return column;
149+
}
150+
128151
/**
129152
* Creates a column for group color bars.
130153
*/

src/main/java/org/jabref/gui/maintable/MainTableColumnModel.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class MainTableColumnModel {
3030
private static final Logger LOGGER = LoggerFactory.getLogger(MainTableColumnModel.class);
3131

3232
public enum Type {
33+
INDEX("index", Localization.lang("Index")),
3334
EXTRAFILE("extrafile", Localization.lang("File type")),
3435
FILES("files", Localization.lang("Linked files")),
3536
GROUPS("groups", Localization.lang("Groups")),
@@ -132,7 +133,8 @@ public String getName() {
132133
}
133134

134135
public String getDisplayName() {
135-
if (Type.ICON_COLUMNS.contains(typeProperty.getValue()) && qualifierProperty.getValue().isBlank()) {
136+
if ((Type.ICON_COLUMNS.contains(typeProperty.getValue()) && qualifierProperty.getValue().isBlank())
137+
|| typeProperty.getValue() == Type.INDEX) {
136138
return typeProperty.getValue().getDisplayName();
137139
} else {
138140
return FieldsUtil.getNameWithType(FieldFactory.parseField(qualifierProperty.getValue()));

src/main/java/org/jabref/gui/preferences/TableColumnsTabViewModel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public void setValues() {
115115
availableColumnsProperty.clear();
116116

117117
availableColumnsProperty.addAll(
118+
new MainTableColumnModel(MainTableColumnModel.Type.INDEX),
118119
new MainTableColumnModel(MainTableColumnModel.Type.LINKED_IDENTIFIER),
119120
new MainTableColumnModel(MainTableColumnModel.Type.GROUPS),
120121
new MainTableColumnModel(MainTableColumnModel.Type.FILES),

src/main/resources/l10n/JabRef_en.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2101,3 +2101,5 @@ Mark\ all\ changes\ as\ accepted=Mark all changes as accepted
21012101
Unmark\ all\ changes=Unmark all changes
21022102
Normalize\ newline\ characters=Normalize newline characters
21032103
Normalizes\ all\ newline\ characters\ in\ the\ field\ content.=Normalizes all newline characters in the field content.
2104+
2105+
Index=Index

0 commit comments

Comments
 (0)