Skip to content

Commit e4eaa35

Browse files
committed
javadoc + checkstyle fixes
1 parent 0c61eef commit e4eaa35

File tree

6 files changed

+174
-165
lines changed

6 files changed

+174
-165
lines changed

src/main/java/tudelft/ti2806/pl3/Constants.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,8 @@ public class Constants {
9898
public static final String PHYLO_BUTTON_LABEL_UPDATE = "Update";
9999
public static final String PHYLO_LABEL_PHYLOGENETIC_TREE = "Phylogenetic tree";
100100
public static final String PHYLO_LABEL_COMMON_ANCESTOR = "Common ancestor";
101+
102+
// MetaFilter view constants
103+
public static final String META_VIEW_TITLE = "Select options to filter on";
104+
101105
}

src/main/java/tudelft/ti2806/pl3/menubar/MenuBarController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ private void filterMetadata() {
108108
application.getMetaFilterController().openDialog();
109109
}
110110

111-
public void setLastOpenedMenu(Component lastOpenedMenu){
111+
public void setLastOpenedMenu(Component lastOpenedMenu) {
112112
menuBarView.setLastOpenedMenu(lastOpenedMenu);
113113
}
114114

Lines changed: 154 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package tudelft.ti2806.pl3.metafilter;
22

33
import org.apache.commons.lang.math.IntRange;
4+
import tudelft.ti2806.pl3.Constants;
45
import tudelft.ti2806.pl3.ControllerContainer;
56
import tudelft.ti2806.pl3.data.Gender;
67
import tudelft.ti2806.pl3.data.Genome;
@@ -10,166 +11,166 @@
1011
import tudelft.ti2806.pl3.ui.util.DialogUtil;
1112
import tudelft.ti2806.pl3.visualization.GraphController;
1213

13-
import javax.swing.JOptionPane;
1414
import java.util.ArrayList;
1515
import java.util.List;
1616
import java.util.stream.Collectors;
1717

1818
/**
19+
* MetaFilterController controls the {@link MetaFilterView} and
20+
* handles the selected chooses from the user.
1921
* Created by Tom Brouws on 16-06-15.
2022
*/
2123
public class MetaFilterController {
2224

23-
private final AbstractGraphData graphData;
24-
private final ControllerContainer cc;
25-
private MetaFilterView metaFilterView;
26-
27-
/**
28-
* Construct the controller and instantiate the view.
29-
*
30-
* @param cc
31-
* Reference to all controllers
32-
* @param graphData
33-
* Contains the gene data
34-
*/
35-
public MetaFilterController(ControllerContainer cc, GraphDataRepository graphData) {
36-
this.cc = cc;
37-
this.graphData = graphData;
38-
metaFilterView = new MetaFilterView();
39-
}
40-
41-
/**
42-
* Compute the gender from input.
43-
*
44-
* @param input
45-
* the input
46-
* @return the gender
47-
*/
48-
private Gender computeGender(String input) {
49-
if (input.equals("Female")) {
50-
return Gender.FEMALE;
51-
} else if (input.equals("Male")) {
52-
return Gender.MALE;
53-
} else {
54-
return null;
55-
}
56-
}
57-
58-
/**
59-
* Compute the HIV status from input.
60-
*
61-
* @param input
62-
* the input
63-
* @return the HIV status
64-
*/
65-
private boolean computeHivStatus(String input) {
66-
if (input.equals("Positive")) {
67-
return true;
68-
} else {
69-
return false;
70-
}
71-
}
72-
73-
/**
74-
* Compute the age range from input.
75-
*
76-
* @param input
77-
* the input
78-
* @return the age range
79-
*/
80-
private IntRange computeAge(String input) {
81-
String[] tokens = input.split("-");
82-
try {
83-
int rangeStart = Integer.parseInt(tokens[0]);
84-
int rangeEnd = Integer.parseInt(tokens[1]);
85-
return new IntRange(rangeStart, rangeEnd);
86-
} catch (ArrayIndexOutOfBoundsException e) {
87-
return new IntRange(0, Integer.parseInt(tokens[0]));
88-
} catch (NumberFormatException e) {
89-
return new IntRange(0, 0);
90-
}
91-
}
92-
93-
/**
94-
* Opens the dialog which lets the user select a gene.<br>
95-
* After a gene is selected, it will do a call to the {@link GraphController} to navigate to the start of that
96-
* gene.
97-
*/
98-
public void openDialog() {
99-
JOptionPane
100-
.showMessageDialog(null, metaFilterView, "Select options to filter on:", JOptionPane.QUESTION_MESSAGE);
101-
102-
List<Genome> firstGenomeList = new ArrayList<>();
103-
Gender selectedGender = computeGender(metaFilterView.getGender());
104-
String selectedLocation = metaFilterView.getStrainLocation();
105-
String selectedIsolationDate = metaFilterView.getIsolationDate();
106-
107-
final boolean selectedHivStatus;
108-
final boolean checkHiv;
109-
if (metaFilterView.getHivStatus().equals("- None -")) {
110-
checkHiv = false;
111-
selectedHivStatus = false;
112-
} else {
113-
selectedHivStatus = computeHivStatus(metaFilterView.getHivStatus());
114-
checkHiv = true;
115-
}
116-
117-
firstGenomeList.addAll(graphData.getGenomes().stream().filter(
118-
genome -> (selectedGender == null || genome.getGender().equals(selectedGender))
119-
&& (selectedLocation.equals("") || genome.getLocation().equals(selectedLocation))
120-
&& (selectedIsolationDate.equals("") || genome.getIsolationDate().equals(selectedIsolationDate))
121-
&& (!checkHiv || genome.getHivStatus() == selectedHivStatus)).collect(
122-
Collectors.toList()));
123-
124-
125-
filterGraph(filterOnAge(computeAge(metaFilterView.getAge()), firstGenomeList));
126-
}
127-
128-
/**
129-
* Filter the genome set on age or age range after other filters are applied.
130-
*
131-
* @param selectedAge
132-
* the selected age range
133-
* @param genomes
134-
* the result set of earlier filters
135-
* @return the final result set
136-
*/
137-
private List<String> filterOnAge(IntRange selectedAge, List<Genome> genomes) {
138-
List<String> genomeList = new ArrayList<>();
139-
if (selectedAge.getMaximumInteger() == 0) {
140-
genomeList = genomes.stream().map(Genome::getIdentifier).collect(Collectors.toList());
141-
} else if (selectedAge.getMinimumInteger() == 0) {
142-
genomeList.addAll(genomes.stream().filter(
143-
genome -> selectedAge.getMaximumInteger() == genome.getAge()).map(Genome::getIdentifier).collect(
144-
Collectors.toList()));
145-
} else {
146-
genomeList.addAll(genomes.stream().filter(
147-
genome -> selectedAge.containsInteger(genome.getAge())).map(Genome::getIdentifier).collect(
148-
Collectors.toList()));
149-
}
150-
return genomeList;
151-
}
152-
153-
/**
154-
* Filter the graph on the result set from the query.
155-
*
156-
* @param genomeList
157-
* the result set
158-
*/
159-
private void filterGraph(List<String> genomeList) {
160-
if (genomeList.size() > 1) {
161-
cc.getGraphController().addFilter(GenomeFilter.NAME, new GenomeFilter(genomeList));
162-
} else if (genomeList.size() == 1) {
163-
DialogUtil.displayMessage("One genome found",
164-
"Just one genome has been found for the selected metadata, TKK_REF has been added to the filter " +
165-
"set.");
166-
genomeList.add("TKK_REF");
167-
cc.getGraphController().addFilter(GenomeFilter.NAME, new GenomeFilter(genomeList));
168-
} else {
169-
if (DialogUtil.confirm("No genomes found",
170-
"No genomes are found for the selected metadata, want to enter new data?")) {
171-
openDialog();
172-
}
173-
}
174-
}
25+
private final AbstractGraphData graphData;
26+
private final ControllerContainer cc;
27+
private MetaFilterView metaFilterView;
28+
29+
/**
30+
* Construct the controller and instantiate the view.
31+
*
32+
* @param cc
33+
* Reference to all controllers
34+
* @param graphData
35+
* Contains the gene data
36+
*/
37+
public MetaFilterController(ControllerContainer cc, GraphDataRepository graphData) {
38+
this.cc = cc;
39+
this.graphData = graphData;
40+
metaFilterView = new MetaFilterView();
41+
}
42+
43+
/**
44+
* Compute the gender from input.
45+
*
46+
* @param input
47+
* the input
48+
* @return the gender
49+
*/
50+
private Gender computeGender(String input) {
51+
if (input.equals("Female")) {
52+
return Gender.FEMALE;
53+
} else if (input.equals("Male")) {
54+
return Gender.MALE;
55+
} else {
56+
return null;
57+
}
58+
}
59+
60+
/**
61+
* Compute the HIV status from input.
62+
*
63+
* @param input
64+
* the input
65+
* @return the HIV status
66+
*/
67+
private boolean computeHivStatus(String input) {
68+
if (input.equals("Positive")) {
69+
return true;
70+
} else {
71+
return false;
72+
}
73+
}
74+
75+
/**
76+
* Compute the age range from input.
77+
*
78+
* @param input
79+
* the input
80+
* @return the age range
81+
*/
82+
private IntRange computeAge(String input) {
83+
String[] tokens = input.split("-");
84+
try {
85+
int rangeStart = Integer.parseInt(tokens[0]);
86+
int rangeEnd = Integer.parseInt(tokens[1]);
87+
return new IntRange(rangeStart, rangeEnd);
88+
} catch (ArrayIndexOutOfBoundsException e) {
89+
return new IntRange(0, Integer.parseInt(tokens[0]));
90+
} catch (NumberFormatException e) {
91+
return new IntRange(0, 0);
92+
}
93+
}
94+
95+
/**
96+
* Opens the dialog which lets the user select a gene.<br>
97+
* After a gene is selected, it will do a call to the {@link GraphController} to navigate to the start of that
98+
* gene.
99+
*/
100+
public void openDialog() {
101+
DialogUtil.displayMessageWithView(metaFilterView, Constants.META_VIEW_TITLE);
102+
List<Genome> firstGenomeList = new ArrayList<>();
103+
Gender selectedGender = computeGender(metaFilterView.getGender());
104+
String selectedLocation = metaFilterView.getStrainLocation();
105+
String selectedIsolationDate = metaFilterView.getIsolationDate();
106+
107+
final boolean selectedHivStatus;
108+
final boolean checkHiv;
109+
if (metaFilterView.getHivStatus().equals("- None -")) {
110+
checkHiv = false;
111+
selectedHivStatus = false;
112+
} else {
113+
selectedHivStatus = computeHivStatus(metaFilterView.getHivStatus());
114+
checkHiv = true;
115+
}
116+
117+
firstGenomeList.addAll(graphData.getGenomes().stream().filter(
118+
genome -> (selectedGender == null || genome.getGender().equals(selectedGender))
119+
&& (selectedLocation.equals("") || genome.getLocation().equals(selectedLocation))
120+
&& (selectedIsolationDate.equals("")
121+
|| genome.getIsolationDate().equals(selectedIsolationDate))
122+
&& (!checkHiv || genome.getHivStatus() == selectedHivStatus)).collect(
123+
Collectors.toList()));
124+
125+
126+
filterGraph(filterOnAge(computeAge(metaFilterView.getAge()), firstGenomeList));
127+
}
128+
129+
/**
130+
* Filter the genome set on age or age range after other filters are applied.
131+
*
132+
* @param selectedAge
133+
* the selected age range
134+
* @param genomes
135+
* the result set of earlier filters
136+
* @return the final result set
137+
*/
138+
private List<String> filterOnAge(IntRange selectedAge, List<Genome> genomes) {
139+
List<String> genomeList = new ArrayList<>();
140+
if (selectedAge.getMaximumInteger() == 0) {
141+
genomeList = genomes.stream().map(Genome::getIdentifier).collect(Collectors.toList());
142+
} else if (selectedAge.getMinimumInteger() == 0) {
143+
genomeList.addAll(genomes.stream().filter(
144+
genome -> selectedAge.getMaximumInteger() == genome.getAge()).map(Genome::getIdentifier).collect(
145+
Collectors.toList()));
146+
} else {
147+
genomeList.addAll(genomes.stream().filter(
148+
genome -> selectedAge.containsInteger(genome.getAge())).map(Genome::getIdentifier).collect(
149+
Collectors.toList()));
150+
}
151+
return genomeList;
152+
}
153+
154+
/**
155+
* Filter the graph on the result set from the query.
156+
*
157+
* @param genomeList
158+
* the result set
159+
*/
160+
private void filterGraph(List<String> genomeList) {
161+
if (genomeList.size() > 1) {
162+
cc.getGraphController().addFilter(GenomeFilter.NAME, new GenomeFilter(genomeList));
163+
} else if (genomeList.size() == 1) {
164+
DialogUtil.displayMessage("One genome found",
165+
"Just one genome has been found for the selected metadata, TKK_REF has been added to the filter "
166+
+ "set.");
167+
genomeList.add("TKK_REF");
168+
cc.getGraphController().addFilter(GenomeFilter.NAME, new GenomeFilter(genomeList));
169+
} else {
170+
if (DialogUtil.confirm("No genomes found",
171+
"No genomes are found for the selected metadata, want to enter new data?")) {
172+
openDialog();
173+
}
174+
}
175+
}
175176
}

src/main/java/tudelft/ti2806/pl3/util/Pair.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414
* the second type
1515
*/
1616
public class Pair<U, T> {
17-
17+
18+
/**
19+
* This method makes a List from a Pair.
20+
* @param pair pair
21+
* @param <T> type
22+
* @return list of pair
23+
*/
1824
public static <T> List<T> toList(Pair<T, T> pair) {
1925
List<T> list = new ArrayList<>(2);
2026
list.add(pair.getFirst());

0 commit comments

Comments
 (0)