JabRef / jabref

Graphical Java application for managing BibTeX and biblatex (.bib) databases
https://devdocs.jabref.org
MIT License
3.64k stars 2.59k forks source link

crossref workflow improvements #6294

Open ilippert opened 4 years ago

ilippert commented 4 years ago

For quite a number of my book entries I hold files for the complete book (parent entry). Now, many of these books are edited volumes.

I note 2 small improvements:

Together with https://github.com/JabRef/jabref/issues/5484, https://github.com/JabRef/jabref/issues/6404, https://github.com/JabRef/jabref/issues/7057, these improvements would very much ease the use of/work with crossreferenced entries.

ilippert commented 4 years ago

see also https://github.com/JabRef/jabref/issues/5765 which detailed the frustrations of worksteps in the current UI - to which @koppor added the UI label.

ilippert commented 3 years ago

I would very very much love to see this feature worked on :)

koppor commented 3 years ago

This somehow refs https://github.com/koppor/jabref/issues/85, where I described a way to avoid crossref (which is contradicting the proposal here)

ilippert commented 3 years ago

This somehow refs koppor#85, where I described a way to avoid crossref (which is contradicting the proposal here)

Thank you for noting this friction!

If of any use, I would be happy to organise some form of structured conversation on use cases or use philosophies of crossref. Should we consider a discourse/forum conversation about this?

ilippert commented 3 years ago

Refs https://github.com/JabRef/jabref/issues/7731

ilippert commented 3 years ago

Regarding

* allow to use the context menu/right click onto the parent entry for generating a new entry that crossreferences the selected parent entry 

this request could also work with https://github.com/JabRef/jabref/issues/4183 - i.e. a flyout popup that searches something fitting for a selected (or entered) string.

i.e. a user might mark/select an entry in the table, and then clicking on the new entry/flyout would offer to generate a new entry that crossreferences the marked entry.

ilippert commented 3 years ago

Just for context: the ideas here were originally voted for at https://discourse.jabref.org/t/seamless-crossreferencing/100

ThiloteE commented 2 years ago

Duplicating/cross-referencing the linked file field to another entry might lead to unintended consequences when writing metadata to pdf. See https://github.com/JabRef/jabref/issues/8278#issuecomment-991641908

When two entries are linked to the same file and both are selected for tools>write metadata to pdf files or F6, it pops for BOTH entries. Metadata is written though. The entry that was written second overwrites the data from the first entry.

ilippert commented 2 years ago

I updated the original suggestion of this issue, because I start to see a more generic issue: the more books, edited volumes, I have in my database, the more I want specific fields of parent entries shown in the entry table for the child entry. I am not sure we can define a positive list for which fields are to be inherited; so I wonder whether it would be possible for the user to flag certain fields as "inheritable". For instance, in the preferences dialogue, I might be able to flag specific fields as inheritable by child entries.

ThiloteE commented 2 years ago

Would the following solve https://github.com/JabRef/jabref/issues/6294#issuecomment-1030638255?

Example for Treetableview (equivalent to JabRef maintable) showing "parent" and "child": grafik

I think these are the most relevant code lines (might require more and of course have to be adapted to reflect JabRefs usecase) that would implement such a thing:

 // Add columns to TreeTable.
        treeTableView.getColumns().addAll(empNoCol, fullNameCol,positionCol, genderCol, singleCol);

        // Data
        Employee empBoss = new Employee("E00", "Abc@gmail.com", //
                "Boss", "Boss", "Manager", "M", false);

        Employee empSmith = new Employee("E01", "Smith@gmail.com", //
                "Susan", "Smith", "Salesman", "F", true);

        Employee empMcNeil = new Employee("E02", "McNeil@gmail.com", //
                "Anne", "McNeil", "Cleck", "M", false);

        // Root Item
        TreeItem<Employee> itemRoot = new TreeItem<Employee>(empBoss);
        TreeItem<Employee> itemSmith = new TreeItem<Employee>(empSmith);
        TreeItem<Employee> itemMcNeil = new TreeItem<Employee>(empMcNeil);

        itemRoot.getChildren().addAll(itemSmith, itemMcNeil);
        treeTableView.setRoot(itemRoot);
        //
        StackPane root = new StackPane();
        root.setPadding(new Insets(5));
        root.getChildren().add(treeTableView);

source: https://codestory.de/11149/javafx-treetableview

ilippert commented 2 years ago

Would the following solve #6294 (comment)?

Example for Treetableview (equivalent to JabRef maintable) showing "parent" and "child"

Thank you. I like the idea of being able to see within the main table such a hierarchical structure.

Comment https://github.com/JabRef/jabref/issues/6294#issuecomment-1030638255 however referred to the preferences. For instance I might want to define field myeditnotes as inheritable.