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

Prototype Implement better search user interface #341 #8356

Open
wants to merge 103 commits into
base: main
Choose a base branch
from
Open
Changes from 30 commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
df90a25
Refactor ContainBasedSearchRuleTest
koppor Nov 1, 2021
418bb66
Introduce FullTextSearchRule as abstraction of ContainBasedSearchRule…
koppor Nov 1, 2021
6984c5f
Add class comment
koppor Nov 1, 2021
a297ee6
Add missing "s" to class name
koppor Nov 1, 2021
ba4dea1
RegexBasedSearchRule: Make validateSearchStrings consistent to applyRule
koppor Nov 1, 2021
e769b50
Add support for Lucene-based search
koppor Nov 2, 2021
c190af0
Merge branch 'main' into refine-search
koppor Nov 3, 2021
0224a9e
Add support for grouping
koppor Nov 3, 2021
c57ea64
Add RecentSearch and DropDownMenu class
julianbopp Nov 13, 2021
ee64ffd
Merge branch 'refine-search' into DropDownMenu_prototype
julianbopp Nov 13, 2021
41b4f38
Add DropDownMenu to GlobalSearchBar
julianbopp Nov 13, 2021
3543a15
Add ChipView Bar below GlobalSearchBar
julianbopp Nov 13, 2021
09d4667
Add sweng doc
josphstar Nov 13, 2021
a9fd464
Add Suggestion List to ChipView Bar
julianbopp Nov 13, 2021
89f9986
Fix dropdown menu appearance and add test method to author button
josphstar Nov 13, 2021
cd71654
Improve buttons and fix dropdown menu appearance
josphstar Nov 13, 2021
c6f8066
add buttonEventHandler for DropDownMenu
dmadoery Nov 14, 2021
98c958b
Merge pull request #1 from josphstar/DropDownProto_Mark
josphstar Nov 14, 2021
2383a84
Merge branch 'DropDownMenu_prototype' into designdoc
josphstar Nov 14, 2021
d44f961
Merge branch 'DropDownMenu_prototype' of github.com:josphstar/jabref …
julianbopp Nov 14, 2021
2c9c5a6
Add technical documentation
josphstar Nov 14, 2021
16b31f4
Update image paths for technical doc
josphstar Nov 14, 2021
a2c2505
Update technical-documentation.md
josphstar Nov 14, 2021
98edfaf
Add color coding and legend to class diagram
josphstar Nov 16, 2021
aff9a10
Queries now get added to RecentSearch when Searchbar loses focus
julianbopp Nov 17, 2021
86f2474
Fix Indentation
julianbopp Nov 17, 2021
d6d51fe
Remove comment
julianbopp Nov 17, 2021
ea67be0
Add pflichtenheft.md in doc folder
albertjasari Nov 17, 2021
fc66433
Merge branch 'RecentSearch_prototype_Julian' into ChipView_prototype
julianbopp Nov 17, 2021
52c12ae
First try with SearchFieldSynchronizer
julianbopp Nov 17, 2021
f029581
Fix null pointer exception when clicking on empty space in recent sea…
josphstar Nov 20, 2021
71522e6
Fix wrong carret position when using recent search list
josphstar Nov 20, 2021
59ff03c
Add carret position method
josphstar Nov 20, 2021
859ac83
Fix checkstyle and clean up
josphstar Nov 20, 2021
46b5413
Add second draft SearchFieldSynchronizer
josphstar Nov 20, 2021
c1f2a9d
Fix spacing issue in search bar
josphstar Nov 20, 2021
64eeefb
Fix but where quote marks caused an exception
josphstar Nov 20, 2021
60f1a54
Search uses OR operator as default now
josphstar Nov 20, 2021
2f477bc
Correct func-spec/tec documentation and remove early draft
josphstar Nov 21, 2021
a39a32e
Add some draft comments to key functions for better understanding.
josphstar Nov 21, 2021
956afb7
Merge branch 'DropDownProto_Mark' into designdoc
josphstar Nov 21, 2021
9658d52
Update link to functional-specification-doc.md
josphstar Nov 21, 2021
41875b7
Rework isValid method
julianbopp Nov 25, 2021
3bb1e5a
Update SearchFieldSyncrhonizer and implement functions from Mark
julianbopp Nov 25, 2021
d2dc4ff
Remove artifacts from ChipView
julianbopp Nov 25, 2021
0d2d20b
Synchronize searchField after pressing Year Button
julianbopp Nov 25, 2021
22dccf5
Remove ChipView artefact
julianbopp Nov 26, 2021
e9809f6
Fix empty spaces behaviour and remove now obsolete method
julianbopp Nov 26, 2021
8a6acb4
Add visual feedback if Search Query is valid or not
julianbopp Nov 26, 2021
7045169
Fill empty else body
julianbopp Nov 26, 2021
b0b92df
Add SearchFieldSynchronizer Test and fix some String formatting
julianbopp Nov 27, 2021
2021dcf
Move textFieldToList from GlobalSearchBar to SearchFieldSyncrhonizer.
julianbopp Nov 27, 2021
f1fd2a1
Fix bug: Typing "author: AND" now correctly results in red highlighting
julianbopp Nov 27, 2021
c233d3d
Uncomment parts of Marks code s.t. "sdfdsf sdfdsf" is recognized as one
julianbopp Nov 27, 2021
d144077
Add correct highlighting if the search query only consists of queries
julianbopp Nov 27, 2021
e9dd2f9
Add comments to SearchFieldSynchronizer and clean up DropDownMenu
julianbopp Nov 27, 2021
2b6e56b
Add method to check if brackets are balanced
julianbopp Nov 27, 2021
1c2cbcd
Simplify A LOT of code by using built in lucene parses
julianbopp Nov 27, 2021
222bc45
Change comment
julianbopp Nov 27, 2021
dd7ef36
DropDownMenu:
dmadoery Nov 28, 2021
dbdeb89
added sweng folder with the testplan.md document into the docs folder
dmadoery Nov 28, 2021
97ce6b2
Merge branch 'DropDownProto_Julian' into testplan
julianbopp Nov 28, 2021
938c0b6
Merge branch 'testplan' of github.com:josphstar/jabref into testplan
julianbopp Nov 28, 2021
9cba666
Add tests
julianbopp Nov 28, 2021
9371b3e
Merge branch 'DropDownProto_Julian' into testplan
julianbopp Dec 8, 2021
63f651f
Remove RegEx button from searchbar
josphstar Dec 8, 2021
aa15363
- changed handler for add button ind DropDownMenu( 3 different cases.)
dmadoery Dec 8, 2021
67802e2
Update testplan.md
albertjasari Dec 8, 2021
c4d9a61
Fix recent search bug where a click on empty space leads to an error
josphstar Dec 11, 2021
ca2d2b5
Correct checkstyle
josphstar Dec 11, 2021
592bdc1
Add bracket regex to textFieldToList()
josphstar Dec 11, 2021
0e72fa6
Add Year-Range-Slider
albertjasari Dec 11, 2021
e58378d
added Autocompleter to DropDownMenu into the searchString Textfield
dmadoery Dec 11, 2021
f3a6563
Recent Search now gets updated when DropDown disappears
julianbopp Dec 11, 2021
5ff4396
Add bracket logic to existing functions
josphstar Dec 11, 2021
463fd5e
Merge branch 'brackets_mark' into prototype2.0
josphstar Dec 11, 2021
41b4da6
updated addString handler
dmadoery Dec 11, 2021
8839532
Merge remote-tracking branch 'origin/prototype2.0' into prototype2.0
dmadoery Dec 11, 2021
9b72302
Update Year-Range-Slider
albertjasari Dec 11, 2021
0859bc8
Update Year-Range-Slider
albertjasari Dec 11, 2021
ab77ad7
Update Year-Range-Slider
albertjasari Dec 11, 2021
9ac190b
Fix checkstyle
julianbopp Dec 11, 2021
40c05ed
updated addString handler
dmadoery Dec 11, 2021
4fddfce
Update Year-Range-Slider
albertjasari Dec 11, 2021
abd467a
Add basic bracket logic
julianbopp Dec 11, 2021
0b00ebb
yearRangeSlider fixed
dmadoery Dec 11, 2021
66fa2e8
Change comment
julianbopp Dec 12, 2021
aae9f90
Add AND^-1 and OR^-1
julianbopp Dec 12, 2021
5c5a0c4
Update Year-Range-Slider in DropDownMenu.java
albertjasari Dec 12, 2021
6e13711
Merge branch 'Year-Range-Slider' into prototype2.0
albertjasari Dec 12, 2021
36edcfd
Merged Year-Range-Slider from Branch: Year-Range_Slider (DropDownMenu…
albertjasari Dec 12, 2021
622caae
Merge branch 'DropDownProto_Julian' into prototype2.0
julianbopp Dec 12, 2021
b3a0f4c
Merge branch 'prototype2.0' of github.com:josphstar/jabref into proto…
julianbopp Dec 12, 2021
a145f56
updated year_range-slider
dmadoery Dec 12, 2021
e60d391
Fix RecentSearch
julianbopp Dec 14, 2021
0007b36
Merge branch 'prototype2.0' of github.com:josphstar/jabref into proto…
julianbopp Dec 14, 2021
b27b1a1
Add presentation slides
josphstar Dec 14, 2021
868be84
Merge branch 'designdoc'
josphstar Dec 22, 2021
8fa397e
Merge branch 'testplan'
josphstar Dec 22, 2021
6f52487
Merge branch 'praesentation'
josphstar Dec 22, 2021
564fe70
Merge branch 'prototype2.0'
josphstar Dec 22, 2021
9bee6df
Merge branch 'prototype2.0'
josphstar Dec 22, 2021
b09a4fe
Add project intern files and update UML diagrams
josphstar Dec 22, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions docs/sweng/testplan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
---
layout: default
title : Woche 6
---
# Testplan template

| Version | Projectname | Authors | Status | Date | Comment |
| ------- | ----- | ------ | ----- |------------| --------- |
| 0.1 | Implement better search | Julian Bopp, Albert Jasari, Daniel Madoery, Mark Starzynski | | 08.12.2021 | |


# 1. Introduction

- The open-sourced citation and reference management software JabRef is in need of a more functional global search and a user-friendly interface thereof.
- The users of JabRef should be able to conveniently search in their citations library and perform complex search querys, also via GUI.
- The goal of this project is to develop an implementation that improves upon the current library search capabilities and enables users of the JabRef software to very easily navigate their libraries.

## 1.1 Purpose

- The test plan includes features about the management software JabRef which are tested in their function and the features are explained.
- In addition, a system overview with the components to be tested is listed, so you can get an overview of the functionality contained in JabRef (for example its complex query search).
- You can examine thereby its hardware and software requirements as well as modules. The functions of the methods are represented by automated unit tests.
- In this test plan you can find all important information about the purpose and use of the individual functions that merge into a unified product - better search.

## 1.2 References

- Technical Specification Document: [technical-documentation.md](https://github.com/josphstar/jabref/blob/designdoc/docs/sweng/technical-documentation.md)
- Functional Specification Document: [functional-specification-document.md](https://github.com/josphstar/jabref/blob/designdoc/docs/sweng/functional-specification-document.md)
- [Issue #341](https://github.com/koppor/jabref/issues/341)

## 2. Systemoverview

- The class diagram shows the dependency and the respective affiliations of the listed classes and methods. A insight into the functionality which is checked with unit tests can be seen in the system overview.
- The components to be tested are the methods in RecentSearch, the different Buttons in the DropDownMenu and its methods, the methods in SearchItem, ItemType, Highlighting and Autocomplete.

![Class Diagram](/w3-UML/out/w3-UML/better-search/class-diagram.png "class-diagram.png")

- Further information on the tests can be found from point 4 onwards.

## 3. Features

### 3.1 To be tested features (Features / Funktionen)

#### DropDownMenu

- GUI visible
- Buttons working on mouse clicked

#### Recent Search

- Recent search removes duplicates

#### SearchFieldSynchronizer

- Get search string
- Search string builder
- Search item list
- Update search item list
- Is previous attribute
- Is previous operator
- Return latest really returns latest
- Add item does not create invalid search
- Searchbar highlighting works
- Searchstring builder builds mixed strings correctly
- Update Search Itemlist

#### Autocomplete

- Autocomplete creates recommendations in searchbar/list

#### 3.1.1 Functional Requirements

- The tested functions can be found in this list under point 3. "Specific requirements" from the [functional specification.md](https://github.com/josphstar/jabref/blob/designdoc/docs/sweng/functional-specification-document.md).


### 3.2 Not to be tested features (Features / Functions)

- Funktion tests of the GUI are not tested.

## 4 Proceeding

### 4.1 Components and Integration Tests

- The tests are performed by unit tests. The modules are executed in a separate test environment.

### 4.2 Functional Tests

- The tests are performed by unit tests in which we check the implementation of the respective methods and functions (tests autocompletion in GlobalSearchbar/Dropdown).
The modules are executed in a separate test environment.

### 5 Hardware and Software Requirements

- There are no special hardware or software requirements needed.

## 6 Testcases

### 6.1 Modultests

| Name of the Class | Name of the Testcase | Status |
| ------- |----------------------------------------| -----|
| SearchFieldSynchronizer | returnLatestReallyReturnsLatest | |
| SearchFieldSynchronizer | addItemDoesNotCreateInvalidSearch | |
| SearchFieldSynchronizer | SearchBarHighlightingWorks | |
| SearchFieldSynchronizer | SearchStringBuilderBuildsMixedStringCorrectly | |
| SearchFieldSynchronizer | testGetSearchString | |
| SearchFieldSynchronizer | testSearchItemList | |
| SearchFieldSynchronizer | testIsPrevAttribute | |
| SearchFieldSynchronizer | testIsPrevOperator | |
| RecentSearch | RecentSearchRemovesDuplicates | |



### 6.2 Funktionstests

| Name of the Class | Name of the Testcase | Status |
| ------- | ----- | ----- |
| SearchFieldSynchronizer | testSearchStringBuilder | |
| SearchFieldSynchronizer | testUpdateSearchItemList | |
| GlobalSearchBar | testEntryInDropdownSearchbar | |
| GlobalSearchBar | completeWithoutAddingAnythingReturnsSomething | |
| GlobalSearchBar | completeReturnsMultipleResultsInDropdown | |
| DropDownMenu | testButtonWorking | |
| DropDownMenu | testDropDownShowing | |
| DropDownMenu | testDropDownNotShowing | |
2 changes: 2 additions & 0 deletions src/main/java/org/jabref/gui/JabRefFrame.java
Original file line number Diff line number Diff line change
@@ -181,6 +181,7 @@ public class JabRefFrame extends BorderPane {

private final TaskExecutor taskExecutor;


public JabRefFrame(Stage mainStage) {
this.mainStage = mainStage;
this.dialogService = new JabRefDialogService(mainStage, this, prefs);
@@ -197,6 +198,7 @@ public JabRefFrame(Stage mainStage) {
}
}
});

}

private void initDragAndDrop() {
Loading