fix: adding a new game works again
The search text field is disabled when unsaved data is available for the currently selected game.
This commit is contained in:
parent
5651e86a2c
commit
96ce48d4c8
|
@ -61,6 +61,8 @@ public class ListPanel extends JPanel
|
||||||
private boolean delayDetailsUpdate = false;
|
private boolean delayDetailsUpdate = false;
|
||||||
private boolean pageButtonPressed = false;
|
private boolean pageButtonPressed = false;
|
||||||
|
|
||||||
|
private boolean filterEnabled = true;
|
||||||
|
|
||||||
private boolean isFiltering = false;
|
private boolean isFiltering = false;
|
||||||
private ListDataListener listDataListener = new ListDataListener()
|
private ListDataListener listDataListener = new ListDataListener()
|
||||||
{
|
{
|
||||||
|
@ -106,31 +108,34 @@ public class ListPanel extends JPanel
|
||||||
|
|
||||||
private void filter()
|
private void filter()
|
||||||
{
|
{
|
||||||
isFiltering = true;
|
if (filterEnabled)
|
||||||
GameListModel listModel = uiModel.getGameListModel();
|
|
||||||
GameListData selectedGame = list.getSelectedValue();
|
|
||||||
listModel.clear();
|
|
||||||
String filterText = filterTextField.getText();
|
|
||||||
List<GameListData> filteredList = new ArrayList<>();
|
|
||||||
for (GameListData item : listModel.getCurrentGameList())
|
|
||||||
{
|
{
|
||||||
if (listModel.filterMatch(item, filterText))
|
isFiltering = true;
|
||||||
|
GameListModel listModel = uiModel.getGameListModel();
|
||||||
|
GameListData selectedGame = list.getSelectedValue();
|
||||||
|
listModel.clear();
|
||||||
|
String filterText = filterTextField.getText();
|
||||||
|
List<GameListData> filteredList = new ArrayList<>();
|
||||||
|
for (GameListData item : listModel.getCurrentGameList())
|
||||||
{
|
{
|
||||||
filteredList.add(item);
|
if (listModel.filterMatch(item, filterText))
|
||||||
|
{
|
||||||
|
filteredList.add(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
//Add all at once (for performance!)
|
||||||
|
listModel.addAll(filteredList);
|
||||||
|
if (filteredList.contains(selectedGame))
|
||||||
|
{
|
||||||
|
list.setSelectedValue(selectedGame, true);
|
||||||
|
}
|
||||||
|
else if (!filteredList.isEmpty())
|
||||||
|
{
|
||||||
|
list.setSelectedIndex(0);
|
||||||
|
}
|
||||||
|
updateViewInfoLabel();
|
||||||
|
isFiltering = false;
|
||||||
}
|
}
|
||||||
//Add all at once (for performance!)
|
|
||||||
listModel.addAll(filteredList);
|
|
||||||
if (filteredList.contains(selectedGame))
|
|
||||||
{
|
|
||||||
list.setSelectedValue(selectedGame, true);
|
|
||||||
}
|
|
||||||
else if (!filteredList.isEmpty())
|
|
||||||
{
|
|
||||||
list.setSelectedIndex(0);
|
|
||||||
}
|
|
||||||
updateViewInfoLabel();
|
|
||||||
isFiltering = false;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -621,10 +626,17 @@ public class ListPanel extends JPanel
|
||||||
{
|
{
|
||||||
getListViewComboBox().setEnabled(!uiModel.isDataChanged());
|
getListViewComboBox().setEnabled(!uiModel.isDataChanged());
|
||||||
getListViewEditButton().setEnabled(!uiModel.isDataChanged());
|
getListViewEditButton().setEnabled(!uiModel.isDataChanged());
|
||||||
|
if (!getFilterTextField().hasFocus())
|
||||||
|
{
|
||||||
|
getFilterTextField().setEnabled(!uiModel.isDataChanged());
|
||||||
|
}
|
||||||
|
filterEnabled = !uiModel.isDataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addNewGame()
|
public void addNewGame()
|
||||||
{
|
{
|
||||||
|
getFilterTextField().setText("");
|
||||||
|
filterEnabled = false;
|
||||||
//Add new entry and select in the list
|
//Add new entry and select in the list
|
||||||
uiModel.addNewGameListData();
|
uiModel.addNewGameListData();
|
||||||
int rowToSelect = getList().getModel().getSize() - 1;
|
int rowToSelect = getList().getModel().getSize() - 1;
|
||||||
|
@ -632,6 +644,7 @@ public class ListPanel extends JPanel
|
||||||
getList().ensureIndexIsVisible(rowToSelect);
|
getList().ensureIndexIsVisible(rowToSelect);
|
||||||
mainPanel.getGameDetailsBackgroundPanel().updateSelectedGame(list.getSelectedValue());
|
mainPanel.getGameDetailsBackgroundPanel().updateSelectedGame(list.getSelectedValue());
|
||||||
mainPanel.getGameDetailsBackgroundPanel().focusTitleField();
|
mainPanel.getGameDetailsBackgroundPanel().focusTitleField();
|
||||||
|
getFilterTextField().setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addNewInfoSlot()
|
public void addNewInfoSlot()
|
||||||
|
|
Loading…
Reference in New Issue