feat: add option to search on System config string with "s:"

This commit is contained in:
lantzelot-swe 2023-09-23 21:39:13 +02:00
parent 3dcdb28808
commit 353c49ae28
5 changed files with 20 additions and 3 deletions

View File

@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>se.lantz</groupId> <groupId>se.lantz</groupId>
<artifactId>PCUAEManager</artifactId> <artifactId>PCUAEManager</artifactId>
<version>2.12.1</version> <version>2.12.2</version>
<name>PCUAEManager</name> <name>PCUAEManager</name>
<properties> <properties>
<project.build.sourceEncoding>Cp1252</project.build.sourceEncoding> <project.build.sourceEncoding>Cp1252</project.build.sourceEncoding>

View File

@ -316,7 +316,7 @@ public class DbConnector
//Construct SQL //Construct SQL
StringBuilder sqlBuilder = new StringBuilder(); StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder sqlBuilder
.append("SELECT title, composer, year, author, gamefile, rowid, favorite, viewtag, disk2, disk3, disk4, disk5, disk6 FROM gameinfo "); .append("SELECT title, composer, year, author, gamefile, rowid, favorite, viewtag, system, disk2, disk3, disk4, disk5, disk6 FROM gameinfo ");
sqlBuilder.append(view.getSqlQuery()); sqlBuilder.append(view.getSqlQuery());
sqlBuilder.append(" ORDER BY title COLLATE NOCASE ASC"); sqlBuilder.append(" ORDER BY title COLLATE NOCASE ASC");
@ -339,6 +339,7 @@ public class DbConnector
data.setAuthor(rs.getString("Author")); data.setAuthor(rs.getString("Author"));
data.setYear(rs.getInt("Year")); data.setYear(rs.getInt("Year"));
data.setViewTag(rs.getString("Viewtag")); data.setViewTag(rs.getString("Viewtag"));
data.setSystem(rs.getString("System"));
if (data.isInfoSlot() && !viewTag.equalsIgnoreCase("GIS:" + view.getGameViewId())) if (data.isInfoSlot() && !viewTag.equalsIgnoreCase("GIS:" + view.getGameViewId()))
{ {

View File

@ -217,7 +217,7 @@ public class ListPanel extends JPanel
filterTextField = new JXSearchField(); filterTextField = new JXSearchField();
filterTextField.getDocument().addDocumentListener(filterTextFieldListener); filterTextField.getDocument().addDocumentListener(filterTextFieldListener);
String tooltipText = String tooltipText =
"<html>Type to search on game title in<br>the current gamelist view.<p><br>Special tags:<br><b>a:</b> - match Author<br><b>c:</b> - match Composer<br><b>y:</b> - match Year<br><b>v:</b> - match View tag<p>Use ',' as separator<br>to match several tags.<p><br>Example: <i>a:imagine,c:martin galway</i></html>"; "<html>Type to search on game title in<br>the current gamelist view.<p><br><u>Special tags</u><br><b>a:</b> - match Author<br><b>c:</b> - match Composer<br><b>y:</b> - match Year<br><b>v:</b> - match View tag<br><b>s:</b> - match System config<p><br>Use ',' as separator to<br>match several tags.<p>Example: <i>a:imagine,c:martin galway</i><br></html>";
filterTextField.setToolTipText(tooltipText); filterTextField.setToolTipText(tooltipText);
} }
return filterTextField; return filterTextField;

View File

@ -61,6 +61,11 @@ public class GameListModel extends DefaultListModel<GameListData>
String viewTag = filterText.substring(2); String viewTag = filterText.substring(2);
found = data.getViewTag().toLowerCase().contains(viewTag); found = data.getViewTag().toLowerCase().contains(viewTag);
} }
else if (filterText.startsWith("s:"))
{
String systemConfig = filterText.substring(2);
found = data.getSystem().toLowerCase().contains(systemConfig);
}
else else
{ {
found = data.getTitle().toLowerCase().contains(filterText); found = data.getTitle().toLowerCase().contains(filterText);

View File

@ -13,6 +13,7 @@ public class GameListData implements Comparable
private String author = ""; private String author = "";
private int year = 0; private int year = 0;
private String viewTag = ""; private String viewTag = "";
private String system = "";
public GameListData(String title, String gameFileName, String gameId, int favorite, boolean infoSlot) public GameListData(String title, String gameFileName, String gameId, int favorite, boolean infoSlot)
{ {
@ -182,4 +183,14 @@ public class GameListData implements Comparable
{ {
this.viewTag = viewTag; this.viewTag = viewTag;
} }
public String getSystem()
{
return system;
}
public void setSystem(String system)
{
this.system = system;
}
} }