feat: add 5 more favorites views for a total of 10.

This commit is contained in:
lantzelot-swe 2021-05-25 23:36:37 +02:00
parent d9212fdaed
commit 40e2f2b42d
7 changed files with 480 additions and 197 deletions

View File

@ -29,11 +29,11 @@ public class GameListDataRenderer extends DefaultListCellRenderer
private Color fav5ColorSelected = Color.PINK;
private final Font bold;
private final Font plain;
private final Font boldItalic;
public GameListDataRenderer()
{
this.plain = getFont().deriveFont(Font.PLAIN);
this.boldItalic = getFont().deriveFont(Font.BOLD + Font.ITALIC);
this.bold = getFont().deriveFont(Font.BOLD);
}
@ -81,6 +81,26 @@ public class GameListDataRenderer extends DefaultListCellRenderer
case 5:
this.setForeground(isSelected ? fav5ColorSelected : fav5Color);
break;
case 6:
this.setForeground(isSelected ? fav1ColorSelected : fav1Color);
this.setFont(boldItalic);
break;
case 7:
this.setForeground(isSelected ? fav2ColorSelected : fav2Color);
this.setFont(boldItalic);
break;
case 8:
this.setForeground(isSelected ? fav3ColorSelected : fav3Color);
this.setFont(boldItalic);
break;
case 9:
this.setForeground(isSelected ? fav4ColorSelected : fav4Color);
this.setFont(boldItalic);
break;
case 10:
this.setForeground(isSelected ? fav5ColorSelected : fav5Color);
this.setFont(boldItalic);
break;
default:
break;
}
@ -119,6 +139,31 @@ public class GameListDataRenderer extends DefaultListCellRenderer
{
this.setFont(bold);
this.setForeground(isSelected ? fav5ColorSelected : fav5Color);
}
else if (view.getGameViewId() == GameView.FAVORITES_6_ID)
{
this.setFont(boldItalic);
this.setForeground(isSelected ? fav1ColorSelected : fav1Color);
}
else if (view.getGameViewId() == GameView.FAVORITES_7_ID)
{
this.setFont(boldItalic);
this.setForeground(isSelected ? fav2ColorSelected : fav2Color);
}
else if (view.getGameViewId() == GameView.FAVORITES_8_ID)
{
this.setFont(boldItalic);
this.setForeground(isSelected ? fav3ColorSelected : fav3Color);
}
else if (view.getGameViewId() == GameView.FAVORITES_9_ID)
{
this.setFont(boldItalic);
this.setForeground(isSelected ? fav4ColorSelected : fav4Color);
}
else if (view.getGameViewId() == GameView.FAVORITES_10_ID)
{
this.setFont(boldItalic);
this.setForeground(isSelected ? fav5ColorSelected : fav5Color);
if(index > -1)
{
this.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.LIGHT_GRAY));

View File

@ -530,7 +530,67 @@ public class ListPanel extends JPanel
mainPanel.repaintAfterModifications();
}
}
public void toggleFavorite6()
{
if (!uiModel.isDataChanged())
{
for (GameListData glData : list.getSelectedValuesList())
{
uiModel.toggleFavorite6(glData);
}
mainPanel.repaintAfterModifications();
}
}
public void toggleFavorite7()
{
if (!uiModel.isDataChanged())
{
for (GameListData glData : list.getSelectedValuesList())
{
uiModel.toggleFavorite7(glData);
}
mainPanel.repaintAfterModifications();
}
}
public void toggleFavorite8()
{
if (!uiModel.isDataChanged())
{
for (GameListData glData : list.getSelectedValuesList())
{
uiModel.toggleFavorite8(glData);
}
mainPanel.repaintAfterModifications();
}
}
public void toggleFavorite9()
{
if (!uiModel.isDataChanged())
{
for (GameListData glData : list.getSelectedValuesList())
{
uiModel.toggleFavorite9(glData);
}
mainPanel.repaintAfterModifications();
}
}
public void toggleFavorite10()
{
if (!uiModel.isDataChanged())
{
for (GameListData glData : list.getSelectedValuesList())
{
uiModel.toggleFavorite10(glData);
}
mainPanel.repaintAfterModifications();
}
}
public void reloadCurrentGameView()
{
GameListData selectedData = getList().getSelectedValue();

View File

@ -198,6 +198,31 @@ public class MainPanel extends JPanel
getListPanel().toggleFavorite5();
}
public void toggleFavorite6()
{
getListPanel().toggleFavorite6();
}
public void toggleFavorite7()
{
getListPanel().toggleFavorite7();
}
public void toggleFavorite8()
{
getListPanel().toggleFavorite8();
}
public void toggleFavorite9()
{
getListPanel().toggleFavorite9();
}
public void toggleFavorite10()
{
getListPanel().toggleFavorite10();
}
public void runCurrentGame()
{
if (getListPanel().isSingleGameSelected() && getListPanel().getSelectedIndexInList() > -1)

View File

@ -64,11 +64,21 @@ public class MenuManager
private JMenuItem toggleFavorite3Item;
private JMenuItem toggleFavorite4Item;
private JMenuItem toggleFavorite5Item;
private JMenuItem toggleFavorite6Item;
private JMenuItem toggleFavorite7Item;
private JMenuItem toggleFavorite8Item;
private JMenuItem toggleFavorite9Item;
private JMenuItem toggleFavorite10Item;
private JMenuItem clearFavorites1Item;
private JMenuItem clearFavorites2Item;
private JMenuItem clearFavorites3Item;
private JMenuItem clearFavorites4Item;
private JMenuItem clearFavorites5Item;
private JMenuItem clearFavorites6Item;
private JMenuItem clearFavorites7Item;
private JMenuItem clearFavorites8Item;
private JMenuItem clearFavorites9Item;
private JMenuItem clearFavorites10Item;
private JMenuItem backupDbItem;
private JMenuItem restoreDbItem;
@ -133,12 +143,22 @@ public class MenuManager
editMenu.add(getToggleFavorite3Item());
editMenu.add(getToggleFavorite4Item());
editMenu.add(getToggleFavorite5Item());
editMenu.add(getToggleFavorite6Item());
editMenu.add(getToggleFavorite7Item());
editMenu.add(getToggleFavorite8Item());
editMenu.add(getToggleFavorite9Item());
editMenu.add(getToggleFavorite10Item());
editMenu.addSeparator();
editMenu.add(getClearFavorites1Item());
editMenu.add(getClearFavorites2Item());
editMenu.add(getClearFavorites3Item());
editMenu.add(getClearFavorites4Item());
editMenu.add(getClearFavorites5Item());
editMenu.add(getClearFavorites6Item());
editMenu.add(getClearFavorites7Item());
editMenu.add(getClearFavorites8Item());
editMenu.add(getClearFavorites9Item());
editMenu.add(getClearFavorites10Item());
toolsMenu = new JMenu("Tools");
toolsMenu.setMnemonic('T');
toolsMenu.add(getBackupDbItem());
@ -160,10 +180,10 @@ public class MenuManager
uiModel.addSaveChangeListener(e -> {
boolean okToEnable = !uiModel.isDataChanged();
addGameItem.setEnabled(okToEnable);
importCarouselItem.setEnabled(okToEnable);
importGamebaseItem.setEnabled(okToEnable);
importMenu.setEnabled(okToEnable);
exportItem.setEnabled(okToEnable);
toggleFavorite1Item.setEnabled(okToEnable);
toolsMenu.setEnabled(okToEnable);
editMenu.setEnabled(okToEnable);
runGameItem.setEnabled(!uiModel.getInfoModel().getGamesFile().isEmpty());
refreshItem.setEnabled(okToEnable);
});
@ -362,6 +382,71 @@ public class MenuManager
return toggleFavorite5Item;
}
private JMenuItem getToggleFavorite6Item()
{
toggleFavorite6Item = new JMenuItem("Add/remove from favorites 6");
KeyStroke keyStrokeToToggleFav = KeyStroke.getKeyStroke(KeyEvent.VK_F6, InputEvent.CTRL_DOWN_MASK);
toggleFavorite6Item.setAccelerator(keyStrokeToToggleFav);
toggleFavorite6Item.addActionListener(e -> {
mainWindow.setWaitCursor(true);
mainWindow.getMainPanel().toggleFavorite6();
mainWindow.setWaitCursor(false);
});
return toggleFavorite6Item;
}
private JMenuItem getToggleFavorite7Item()
{
toggleFavorite7Item = new JMenuItem("Add/remove from favorites 7");
KeyStroke keyStrokeToToggleFav = KeyStroke.getKeyStroke(KeyEvent.VK_F7, InputEvent.CTRL_DOWN_MASK);
toggleFavorite7Item.setAccelerator(keyStrokeToToggleFav);
toggleFavorite7Item.addActionListener(e -> {
mainWindow.setWaitCursor(true);
mainWindow.getMainPanel().toggleFavorite7();
mainWindow.setWaitCursor(false);
});
return toggleFavorite7Item;
}
private JMenuItem getToggleFavorite8Item()
{
toggleFavorite8Item = new JMenuItem("Add/remove from favorites 8");
KeyStroke keyStrokeToToggleFav = KeyStroke.getKeyStroke(KeyEvent.VK_F8, InputEvent.CTRL_DOWN_MASK);
toggleFavorite8Item.setAccelerator(keyStrokeToToggleFav);
toggleFavorite8Item.addActionListener(e -> {
mainWindow.setWaitCursor(true);
mainWindow.getMainPanel().toggleFavorite8();
mainWindow.setWaitCursor(false);
});
return toggleFavorite8Item;
}
private JMenuItem getToggleFavorite9Item()
{
toggleFavorite9Item = new JMenuItem("Add/remove from favorites 9");
KeyStroke keyStrokeToToggleFav = KeyStroke.getKeyStroke(KeyEvent.VK_F9, InputEvent.CTRL_DOWN_MASK);
toggleFavorite9Item.setAccelerator(keyStrokeToToggleFav);
toggleFavorite9Item.addActionListener(e -> {
mainWindow.setWaitCursor(true);
mainWindow.getMainPanel().toggleFavorite9();
mainWindow.setWaitCursor(false);
});
return toggleFavorite9Item;
}
private JMenuItem getToggleFavorite10Item()
{
toggleFavorite10Item = new JMenuItem("Add/remove from favorites 10");
KeyStroke keyStrokeToToggleFav = KeyStroke.getKeyStroke(KeyEvent.VK_F10, InputEvent.CTRL_DOWN_MASK);
toggleFavorite10Item.setAccelerator(keyStrokeToToggleFav);
toggleFavorite10Item.addActionListener(e -> {
mainWindow.setWaitCursor(true);
mainWindow.getMainPanel().toggleFavorite10();
mainWindow.setWaitCursor(false);
});
return toggleFavorite10Item;
}
private JMenuItem getClearFavorites1Item()
{
clearFavorites1Item = new JMenuItem("Clear favorites 1");
@ -369,7 +454,7 @@ public class MenuManager
KeyStroke.getKeyStroke(KeyEvent.VK_F1, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites1Item.setAccelerator(keyStrokeToClearFav);
clearFavorites1Item.addActionListener(e -> {
clearFavorites();
clearFavorites(1);
});
return clearFavorites1Item;
}
@ -381,7 +466,7 @@ public class MenuManager
KeyStroke.getKeyStroke(KeyEvent.VK_F2, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites2Item.setAccelerator(keyStrokeToClearFav);
clearFavorites2Item.addActionListener(e -> {
clearFavorites2();
clearFavorites(2);
});
return clearFavorites2Item;
}
@ -393,7 +478,7 @@ public class MenuManager
KeyStroke.getKeyStroke(KeyEvent.VK_F3, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites3Item.setAccelerator(keyStrokeToClearFav);
clearFavorites3Item.addActionListener(e -> {
clearFavorites3();
clearFavorites(3);
});
return clearFavorites3Item;
}
@ -405,7 +490,7 @@ public class MenuManager
KeyStroke.getKeyStroke(KeyEvent.VK_F4, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites4Item.setAccelerator(keyStrokeToClearFav);
clearFavorites4Item.addActionListener(e -> {
clearFavorites4();
clearFavorites(4);
});
return clearFavorites4Item;
}
@ -417,11 +502,71 @@ public class MenuManager
KeyStroke.getKeyStroke(KeyEvent.VK_F5, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites5Item.setAccelerator(keyStrokeToClearFav);
clearFavorites5Item.addActionListener(e -> {
clearFavorites5();
clearFavorites(5);
});
return clearFavorites5Item;
}
private JMenuItem getClearFavorites6Item()
{
clearFavorites6Item = new JMenuItem("Clear favorites 6");
KeyStroke keyStrokeToClearFav =
KeyStroke.getKeyStroke(KeyEvent.VK_F6, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites6Item.setAccelerator(keyStrokeToClearFav);
clearFavorites6Item.addActionListener(e -> {
clearFavorites(6);
});
return clearFavorites6Item;
}
private JMenuItem getClearFavorites7Item()
{
clearFavorites7Item = new JMenuItem("Clear favorites 7");
KeyStroke keyStrokeToClearFav =
KeyStroke.getKeyStroke(KeyEvent.VK_F7, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites7Item.setAccelerator(keyStrokeToClearFav);
clearFavorites7Item.addActionListener(e -> {
clearFavorites(7);
});
return clearFavorites7Item;
}
private JMenuItem getClearFavorites8Item()
{
clearFavorites8Item = new JMenuItem("Clear favorites 8");
KeyStroke keyStrokeToClearFav =
KeyStroke.getKeyStroke(KeyEvent.VK_F8, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites8Item.setAccelerator(keyStrokeToClearFav);
clearFavorites8Item.addActionListener(e -> {
clearFavorites(8);
});
return clearFavorites8Item;
}
private JMenuItem getClearFavorites9Item()
{
clearFavorites9Item = new JMenuItem("Clear favorites 9");
KeyStroke keyStrokeToClearFav =
KeyStroke.getKeyStroke(KeyEvent.VK_F9, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites9Item.setAccelerator(keyStrokeToClearFav);
clearFavorites9Item.addActionListener(e -> {
clearFavorites(9);
});
return clearFavorites9Item;
}
private JMenuItem getClearFavorites10Item()
{
clearFavorites10Item = new JMenuItem("Clear favorites 10");
KeyStroke keyStrokeToClearFav =
KeyStroke.getKeyStroke(KeyEvent.VK_F10, InputEvent.CTRL_DOWN_MASK + InputEvent.SHIFT_DOWN_MASK);
clearFavorites10Item.setAccelerator(keyStrokeToClearFav);
clearFavorites10Item.addActionListener(e -> {
clearFavorites(10);
});
return clearFavorites10Item;
}
private JMenuItem getBackupDbItem()
{
backupDbItem = new JMenuItem("Backup database");
@ -670,58 +815,17 @@ public class MenuManager
}
}
private void clearFavorites()
private void clearFavorites(int number)
{
String message = "Are you sure you want to clear all games marked as favorites 1?";
int option = JOptionPane.showConfirmDialog(MainWindow.getInstance()
.getMainPanel(), message, "Clear all favorites 1", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
String message = "Are you sure you want to clear all games marked as favorites " + number + "?";
int option = JOptionPane.showConfirmDialog(MainWindow.getInstance().getMainPanel(),
message,
"Clear all favorites " + number,
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.YES_OPTION)
{
uiModel.clearFavorites(1);
}
}
private void clearFavorites2()
{
String message = "Are you sure you want to clear all games marked as favorites 2?";
int option = JOptionPane.showConfirmDialog(MainWindow.getInstance()
.getMainPanel(), message, "Clear all favorites 2", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.YES_OPTION)
{
uiModel.clearFavorites(2);
}
}
private void clearFavorites3()
{
String message = "Are you sure you want to clear all games marked as favorites 3?";
int option = JOptionPane.showConfirmDialog(MainWindow.getInstance()
.getMainPanel(), message, "Clear all favorites 3", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.YES_OPTION)
{
uiModel.clearFavorites(3);
}
}
private void clearFavorites4()
{
String message = "Are you sure you want to clear all games marked as favorites 4?";
int option = JOptionPane.showConfirmDialog(MainWindow.getInstance()
.getMainPanel(), message, "Clear all favorites 4", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.YES_OPTION)
{
uiModel.clearFavorites(4);
}
}
private void clearFavorites5()
{
String message = "Are you sure you want to clear all games marked as favorites 5?";
int option = JOptionPane.showConfirmDialog(MainWindow.getInstance()
.getMainPanel(), message, "Clear all favorites 5", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.YES_OPTION)
{
uiModel.clearFavorites(5);
uiModel.clearFavorites(number);
}
}

View File

@ -1,6 +1,5 @@
package se.lantz.model;
import java.awt.image.BufferedImage;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
@ -19,7 +18,6 @@ import se.lantz.manager.ImportManager;
import se.lantz.model.data.GameDetails;
import se.lantz.model.data.GameListData;
import se.lantz.model.data.GameView;
import se.lantz.model.data.ScraperFields;
import se.lantz.scraper.MobyGamesScraper;
import se.lantz.scraper.Scraper;
import se.lantz.util.FileManager;
@ -35,17 +33,27 @@ public class MainViewModel extends AbstractModel
private GameView selectedGameView;
private int allGamesCount = 0;
private int favoritesCount = 0;
private int favorites1Count = 0;
private int favorites2Count = 0;
private int favorites3Count = 0;
private int favorites4Count = 0;
private int favorites5Count = 0;
private int favorites6Count = 0;
private int favorites7Count = 0;
private int favorites8Count = 0;
private int favorites9Count = 0;
private int favorites10Count = 0;
private GameView allGameView;
private GameView favoritesView;
private GameView favorites1View;
private GameView favorites2View;
private GameView favorites3View;
private GameView favorites4View;
private GameView favorites5View;
private GameView favorites6View;
private GameView favorites7View;
private GameView favorites8View;
private GameView favorites9View;
private GameView favorites10View;
private InfoModel infoModel = new InfoModel();
private JoystickModel joy1Model = new JoystickModel(true);
@ -77,7 +85,7 @@ public class MainViewModel extends AbstractModel
resetDataChangedAfterInit();
}
public DbConnector getDbConnector()
{
return this.dbConnector;
@ -105,38 +113,63 @@ public class MainViewModel extends AbstractModel
{
//Setup game views
allGameView = new GameView(GameView.ALL_GAMES_ID);
allGameView.setName("All Games");
allGameView.setSqlQuery("");
allGameView.setSqlQuery("");
selectedGameView = allGameView;
//Add favorites views
favoritesView = new GameView(GameView.FAVORITES_ID);
favoritesView.setName("Favorites 1");
favoritesView.setSqlQuery(" WHERE Favorite = 1");
favorites1View = new GameView(GameView.FAVORITES_ID);
favorites1View.setName("Favorites 1");
favorites1View.setSqlQuery(" WHERE Favorite = 1");
favorites2View = new GameView(GameView.FAVORITES_2_ID);
favorites2View.setName("Favorites 2");
favorites2View.setSqlQuery(" WHERE Favorite = 2");
favorites3View = new GameView(GameView.FAVORITES_3_ID);
favorites3View.setName("Favorites 3");
favorites3View.setSqlQuery(" WHERE Favorite = 3");
favorites4View = new GameView(GameView.FAVORITES_4_ID);
favorites4View.setName("Favorites 4");
favorites4View.setSqlQuery(" WHERE Favorite = 4");
favorites5View = new GameView(GameView.FAVORITES_5_ID);
favorites5View.setName("Favorites 5");
favorites5View.setSqlQuery(" WHERE Favorite = 5");
favorites6View = new GameView(GameView.FAVORITES_6_ID);
favorites6View.setName("Favorites 6");
favorites6View.setSqlQuery(" WHERE Favorite = 6");
favorites7View = new GameView(GameView.FAVORITES_7_ID);
favorites7View.setName("Favorites 7");
favorites7View.setSqlQuery(" WHERE Favorite = 7");
favorites8View = new GameView(GameView.FAVORITES_8_ID);
favorites8View.setName("Favorites 8");
favorites8View.setSqlQuery(" WHERE Favorite = 8");
favorites9View = new GameView(GameView.FAVORITES_9_ID);
favorites9View.setName("Favorites 9");
favorites9View.setSqlQuery(" WHERE Favorite = 9");
favorites10View = new GameView(GameView.FAVORITES_10_ID);
favorites10View.setName("Favorites 10");
favorites10View.setSqlQuery(" WHERE Favorite = 10");
gameViewModel.addElement(allGameView);
gameViewModel.addElement(favoritesView);
gameViewModel.addElement(favorites1View);
gameViewModel.addElement(favorites2View);
gameViewModel.addElement(favorites3View);
gameViewModel.addElement(favorites4View);
gameViewModel.addElement(favorites5View);
gameViewModel.addElement(favorites6View);
gameViewModel.addElement(favorites7View);
gameViewModel.addElement(favorites8View);
gameViewModel.addElement(favorites9View);
gameViewModel.addElement(favorites10View);
List<GameView> gameViewList = dbConnector.loadGameViews();
Collections.sort(gameViewList);
@ -217,11 +250,14 @@ public class MainViewModel extends AbstractModel
TextComponentSupport.clearUndoManagers();
}
public StringBuilder importGameInfo(List<String> rowValues, ImportManager.Options option, int addAsFavorite, String viewTag)
public StringBuilder importGameInfo(List<String> rowValues,
ImportManager.Options option,
int addAsFavorite,
String viewTag)
{
return dbConnector.importRowsInGameInfoTable(rowValues, option, addAsFavorite, viewTag);
}
public void cleanupAfterImport()
{
dbConnector.cleanupAfterImport();
@ -286,11 +322,16 @@ public class MainViewModel extends AbstractModel
{
this.allGamesCount = gamesList.size();
//Update favorites count
favoritesCount = 0;
favorites1Count = 0;
favorites2Count = 0;
favorites3Count = 0;
favorites4Count = 0;
favorites5Count = 0;
favorites6Count = 0;
favorites7Count = 0;
favorites8Count = 0;
favorites9Count = 0;
favorites10Count = 0;
for (GameListData gameListData : gamesList)
{
if (gameListData.isFavorite())
@ -298,7 +339,7 @@ public class MainViewModel extends AbstractModel
switch (gameListData.getFavoriteNumber())
{
case 1:
favoritesCount++;
favorites1Count++;
break;
case 2:
favorites2Count++;
@ -312,16 +353,36 @@ public class MainViewModel extends AbstractModel
case 5:
favorites5Count++;
break;
case 6:
favorites6Count++;
break;
case 7:
favorites7Count++;
break;
case 8:
favorites8Count++;
break;
case 9:
favorites9Count++;
break;
case 10:
favorites10Count++;
break;
default:
break;
}
}
}
favoritesView.setGameCount(favoritesCount);
favorites1View.setGameCount(favorites1Count);
favorites2View.setGameCount(favorites2Count);
favorites3View.setGameCount(favorites3Count);
favorites4View.setGameCount(favorites4Count);
favorites5View.setGameCount(favorites5Count);
favorites6View.setGameCount(favorites6Count);
favorites7View.setGameCount(favorites7Count);
favorites8View.setGameCount(favorites8Count);
favorites9View.setGameCount(favorites9Count);
favorites10View.setGameCount(favorites10Count);
}
this.disableChangeNotification(false);
logger.debug("...done.");
@ -399,7 +460,7 @@ public class MainViewModel extends AbstractModel
//Update duplicate index
infoModel.setDuplicateIndex(dbConnector.getGameDuplicateIndexToUse(infoModel.getTitle()));
}
if (!validateRequiredFields().isEmpty())
{
//Validate that all required fields are set here!!
@ -409,7 +470,7 @@ public class MainViewModel extends AbstractModel
//Update with empty cover and/or screen before saving
infoModel.updateCoverAndScreensIfEmpty(getSystemModel().isC64());
//Update all file names to match title
infoModel.updateFileNames();
//Create game details
@ -443,29 +504,44 @@ public class MainViewModel extends AbstractModel
selectedData.setGameId(currentGameId);
if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_ID)
{
//Mark as favorites
toggleFavorite(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_2_ID)
{
//Mark as favorites
toggleFavorite2(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_3_ID)
{
//Mark as favorites
toggleFavorite3(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_4_ID)
{
//Mark as favorites
toggleFavorite4(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_5_ID)
{
//Mark as favorites
toggleFavorite5(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_6_ID)
{
toggleFavorite6(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_7_ID)
{
toggleFavorite7(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_8_ID)
{
toggleFavorite8(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_9_ID)
{
toggleFavorite9(selectedData);
}
else if (getSelectedGameView().getGameViewId() == GameView.FAVORITES_10_ID)
{
toggleFavorite10(selectedData);
}
}
else
{
@ -520,13 +596,13 @@ public class MainViewModel extends AbstractModel
//Reload the current view
reloadCurrentGameView();
}
public void deleteAllGamesInCurrentView()
{
//First delete all covers, screens and games
for (int i = 0; i < getGameListModel().getSize(); i++)
{
GameListData currentData = getGameListModel().getElementAt(i);
GameListData currentData = getGameListModel().getElementAt(i);
if (!currentData.getTitle().contains("THEC64") || currentData.getTitle().contains("VIC20"))
{
GameDetails details = dbConnector.getGameDetails(currentData.getGameId());
@ -548,7 +624,7 @@ public class MainViewModel extends AbstractModel
reloadGameViews();
}
}
public void clearFavorites(int number)
{
dbConnector.clearFavorites(number);
@ -600,13 +676,13 @@ public class MainViewModel extends AbstractModel
resetDataChanged();
}
}
private void reduceFavoriteCount(int previousFavorite)
{
switch (previousFavorite)
{
case 1:
favoritesView.setGameCount(--favoritesCount);
favorites1View.setGameCount(--favorites1Count);
break;
case 2:
favorites2View.setGameCount(--favorites2Count);
@ -620,18 +696,83 @@ public class MainViewModel extends AbstractModel
case 5:
favorites5View.setGameCount(--favorites5Count);
break;
case 6:
favorites6View.setGameCount(--favorites6Count);
break;
case 7:
favorites7View.setGameCount(--favorites7Count);
break;
case 8:
favorites8View.setGameCount(--favorites8Count);
break;
case 9:
favorites9View.setGameCount(--favorites9Count);
break;
case 10:
favorites10View.setGameCount(--favorites10Count);
break;
default:
break;
}
}
public void toggleFavorite(GameListData data)
{
favorites1Count = toggleFavorite(data, 1, favorites1Count, favorites1View);
}
public void toggleFavorite2(GameListData data)
{
favorites2Count = toggleFavorite(data, 2, favorites2Count, favorites2View);
}
public void toggleFavorite3(GameListData data)
{
favorites3Count = toggleFavorite(data, 3, favorites3Count, favorites3View);
}
public void toggleFavorite4(GameListData data)
{
favorites4Count = toggleFavorite(data, 4, favorites4Count, favorites4View);
}
public void toggleFavorite5(GameListData data)
{
favorites5Count = toggleFavorite(data, 5, favorites5Count, favorites5View);
}
public void toggleFavorite6(GameListData data)
{
favorites6Count = toggleFavorite(data, 6, favorites6Count, favorites6View);
}
public void toggleFavorite7(GameListData data)
{
favorites7Count = toggleFavorite(data, 7, favorites7Count, favorites7View);
}
public void toggleFavorite8(GameListData data)
{
favorites8Count = toggleFavorite(data, 8, favorites8Count, favorites8View);
}
public void toggleFavorite9(GameListData data)
{
favorites9Count = toggleFavorite(data, 9, favorites9Count, favorites9View);
}
public void toggleFavorite10(GameListData data)
{
favorites10Count = toggleFavorite(data, 10, favorites10Count, favorites10View);
}
private int toggleFavorite(GameListData data, int favoritesNumber, int favoritesCount, GameView favoritesView)
{
if (data != null && !data.getGameId().isEmpty())
{
int previousFavorite = data.getFavorite();
dbConnector.toggleFavorite(data.getGameId(), previousFavorite, 1);
data.toggleFavorite();
dbConnector.toggleFavorite(data.getGameId(), previousFavorite, favoritesNumber);
data.toggleFavorite(favoritesNumber);
if (data.isFavorite())
{
favoritesView.setGameCount(++favoritesCount);
@ -643,93 +784,14 @@ public class MainViewModel extends AbstractModel
}
gameListModel.notifyChange();
}
}
public void toggleFavorite2(GameListData data)
{
if (data != null && !data.getGameId().isEmpty())
{
int previousFavorite = data.getFavorite();
dbConnector.toggleFavorite(data.getGameId(), previousFavorite, 2);
data.toggleFavorite2();
if (data.isFavorite())
{
favorites2View.setGameCount(++favorites2Count);
reduceFavoriteCount(previousFavorite);
}
else
{
favorites2View.setGameCount(--favorites2Count);
}
gameListModel.notifyChange();
}
}
public void toggleFavorite3(GameListData data)
{
if (data != null && !data.getGameId().isEmpty())
{
int previousFavorite = data.getFavorite();
dbConnector.toggleFavorite(data.getGameId(), previousFavorite, 3);
data.toggleFavorite3();
if (data.isFavorite())
{
favorites3View.setGameCount(++favorites3Count);
reduceFavoriteCount(previousFavorite);
}
else
{
favorites3View.setGameCount(--favorites3Count);
}
gameListModel.notifyChange();
}
}
public void toggleFavorite4(GameListData data)
{
if (data != null && !data.getGameId().isEmpty())
{
int previousFavorite = data.getFavorite();
dbConnector.toggleFavorite(data.getGameId(), previousFavorite, 4);
data.toggleFavorite4();
if (data.isFavorite())
{
favorites4View.setGameCount(++favorites4Count);
reduceFavoriteCount(previousFavorite);
}
else
{
favorites4View.setGameCount(--favorites4Count);
}
gameListModel.notifyChange();
}
}
public void toggleFavorite5(GameListData data)
{
if (data != null && !data.getGameId().isEmpty())
{
int previousFavorite = data.getFavorite();
dbConnector.toggleFavorite(data.getGameId(), previousFavorite, 5);
data.toggleFavorite5();
if (data.isFavorite())
{
favorites5View.setGameCount(++favorites5Count);
reduceFavoriteCount(previousFavorite);
}
else
{
favorites5View.setGameCount(--favorites5Count);
}
gameListModel.notifyChange();
}
return favoritesCount;
}
public void runGameInVice()
{
fileManager.runVice(true);
}
public void runVice()
{
fileManager.runVice(false);

View File

@ -39,29 +39,11 @@ public class GameListData implements Comparable
return favorite;
}
public void toggleFavorite()
public void toggleFavorite(int number)
{
this.favorite = favorite == 1 ? 0 : 1;
this.favorite = favorite == number ? 0 : number;
}
public void toggleFavorite2()
{
this.favorite = favorite == 2 ? 0 : 2;
}
public void toggleFavorite3()
{
this.favorite = favorite == 3 ? 0 : 3;
}
public void toggleFavorite4()
{
this.favorite = favorite == 4 ? 0 : 4;
}
public void toggleFavorite5()
{
this.favorite = favorite == 5 ? 0 : 5;
}
public boolean isFavorite()
{
return favorite > 0;

View File

@ -14,6 +14,11 @@ public class GameView implements Comparable
public static final int FAVORITES_3_ID = -4;
public static final int FAVORITES_4_ID = -5;
public static final int FAVORITES_5_ID = -6;
public static final int FAVORITES_6_ID = -7;
public static final int FAVORITES_7_ID = -8;
public static final int FAVORITES_8_ID = -9;
public static final int FAVORITES_9_ID = -10;
public static final int FAVORITES_10_ID = -11;
private static final Logger logger = LoggerFactory.getLogger(GameView.class);
private String name = "";
private List<ViewFilter> viewFilters = new ArrayList<>();