Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make "unlinked files" dialog a wizard #12709

Open
koppor opened this issue Mar 12, 2025 · 6 comments
Open

Make "unlinked files" dialog a wizard #12709

koppor opened this issue Mar 12, 2025 · 6 comments

Comments

@koppor
Copy link
Member

koppor commented Mar 12, 2025

Unlinked files dialog is now a simple dialog that makes the user work step by step. select library, select directory, select file extensions to look for. Then search for files. Then select from the search results the files to import.

This could be improved to a proper assistant. ControlsFX offers a wizard class. controlsfx/controlsfx#1542 should be merged soon - this is a pre-condition.

Background

@Sikandar1310291
Copy link

assign me

Copy link
Contributor

👋 Hey @Sikandar1310291, looks like you’re eager to work on this issue—great! 🎉 It also looks like you skipped reading our CONTRIBUTING.md, which explains exactly how to participate. No worries, it happens to the best of us. Give it a read, and you’ll discover the ancient wisdom of assigning issues to yourself. Trust me, it’s worth it. 🚀

@Sikandar1310291
Copy link

-----------------------------------------------------------------Key Issues----------------------------------------------------------------------

  1. Step-by-step process isn't an actual wizard :
    Users manually navigate through steps instead of being guided intuitively.
    2)Usability improvement opportunity:
    The current UI isn't as user-friendly as it could be (compared to patterns like the [Assistent pattern])

-------------------------------------------------------------Proposed Solution-----------------------------------------------------------------

  1. Use ControlsFX Wizard :
    Once [controlsfx#1542] (Provide a public getter method for the Dialog used by a Wizard controlsfx/controlsfx#1542) is merged, we can refactor the dialog using the Wizard class from ControlsFX.

2)New Wizard Design :
The new wizard will have 5 steps, each represented as a WizardPane:

                               a)  Select Library  :
                                                              Drop-down or file picker for choosing an existing JabRef library.
                               b)Select Directory :
                                                              Directory picker to specify where to search for unlinked files.
                               c)Select File Extensions :
                                                             Checkboxes for common file extensions (.pdf, .tex, etc.).
                               d)Search for Files : 
                                                            A progress indicator and file list showing found files.
                               e)Select Files to Import :
                                                            A final review screen with a selectable list of files.

3)Navigation & Features:
a)Next/Back Buttons :
Users can move through steps easily.
b)Validation on Each Step :
Prevents users from proceeding with missing information.
c)Summary Screen Before Importing :
Gives users an overview before making final decisions
--------------------------------------------------------------Implementation detail --------------------------------------------------------

  1. Update Affected Files :
    a) FindUnlinkedFilesDialog.java :
    Replace the existing step-by-step UI with a Wizard.
    b)FindUnlinkedFilesHandler.java :
    Ensure it integrates smoothly with the new wizard.
    Other related UI files (depending on implementation structure in JabRef).
  1. Use ControlsFX Wizard

Modify the dialog to use the Wizard class :

Wizard wizard = new Wizard();
wizard.setTitle("Find Unlinked Files");

WizardPane selectLibraryPane = new WizardPane();
selectLibraryPane.setContent(new Label("Select a library"));

// Define all wizard steps similarly

wizard.setFlow(new LinearFlow(selectLibraryPane, selectDirectoryPane, selectExtensionsPane, searchFilesPane, selectFilesPane));

Optional result = wizard.showAndWait();
if (result.isPresent() && result.get() == ButtonType.FINISH) {
// Handle import process
}

  1. Ensure Compatibility with ControlsFX :
    a) Wait for Provide a public getter method for the Dialog used by a Wizard controlsfx/controlsfx#1542 to be merged.
    b) Test the wizard UI to ensure smooth transitions.

@Sikandar1310291
Copy link

Sikandar1310291 commented Mar 20, 2025

Sir , this issue has no any repository and i could not take it folk and change in it . so i give the answer in comment . can i contribute in Gsoc in 2025

@koppor
Copy link
Member Author

koppor commented Mar 21, 2025

Muhammad, I think, this project does not meet your expectations. Please look for other projects more fitting your learning aims and available resources to dive into the project.

@Sikandar1310291
Copy link

sir , i work on it 3 days then i found the solution .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants