Adds delete game view + bug fixes
This commit is contained in:
parent
7a9fee0d49
commit
f9aec586dc
|
@ -718,4 +718,21 @@ public class DbConnector
|
|||
ExceptionHandler.handleException(e, "Could not delete games in db.");
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteView(GameView view)
|
||||
{
|
||||
String viewFilterSql = "DELETE FROM viewfilter WHERE gameview = " + view.getGameViewId();
|
||||
String gameViewSql = "DELETE FROM gameview WHERE viewId = " + view.getGameViewId();
|
||||
try (Connection conn = this.connect(); PreparedStatement viewFilterstmt = conn.prepareStatement(viewFilterSql); PreparedStatement gameViewStmt = conn.prepareStatement(gameViewSql))
|
||||
{
|
||||
int value = viewFilterstmt.executeUpdate();
|
||||
logger.debug("Executed successfully, value = {}", value);
|
||||
value = gameViewStmt.executeUpdate();
|
||||
logger.debug("Executed successfully, value = {}", value);
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
ExceptionHandler.handleException(e, "Could not delete gameview or viewfilter in db.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -126,6 +126,10 @@ public class ListPanel extends JPanel
|
|||
editItem.addActionListener(e -> gameViewManager
|
||||
.openViewEditDialog((GameView) getListViewComboBox().getSelectedItem()));
|
||||
menu.add(editItem);
|
||||
JMenuItem deleteItem = new JMenuItem("Delete view...");
|
||||
deleteItem.addActionListener(e -> gameViewManager
|
||||
.deleteView((GameView) getListViewComboBox().getSelectedItem()));
|
||||
menu.add(deleteItem);
|
||||
}
|
||||
|
||||
menu.show(listViewEditButton, 15, 15);
|
||||
|
@ -174,12 +178,16 @@ public class ListPanel extends JPanel
|
|||
{
|
||||
indexToSelect = uiModel.getGameListModel().getSize()-1;
|
||||
}
|
||||
//Select -1 first to ensure a change of selection is done
|
||||
list.setSelectedIndex(-1);
|
||||
list.clearSelection();
|
||||
list.setSelectedIndex(indexToSelect);
|
||||
list.ensureIndexIsVisible(indexToSelect);
|
||||
}
|
||||
|
||||
public void clearGameListSelection()
|
||||
{
|
||||
list.clearSelection();
|
||||
}
|
||||
|
||||
private JPanel getViewInfoPanel()
|
||||
{
|
||||
if (viewInfoPanel == null)
|
||||
|
|
|
@ -156,4 +156,9 @@ public class MainPanel extends JPanel
|
|||
this.repaint();
|
||||
getListPanel().updateViewInfoLabel();
|
||||
}
|
||||
|
||||
public void clearGameListSelection()
|
||||
{
|
||||
getListPanel().clearGameListSelection();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ public final class MainWindow extends JFrame
|
|||
menuManager.intialize();
|
||||
}
|
||||
|
||||
MainPanel getMainPanel()
|
||||
public MainPanel getMainPanel()
|
||||
{
|
||||
if (mainPanel == null)
|
||||
{
|
||||
|
|
|
@ -337,6 +337,7 @@ public class MenuManager
|
|||
if (option == JOptionPane.YES_OPTION)
|
||||
{
|
||||
backupDb();
|
||||
MainWindow.getInstance().getMainPanel().clearGameListSelection();
|
||||
uiModel.deleteAllGames();
|
||||
FileManager.deleteAllFolderContent();
|
||||
//Trigger a reload of game views
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package se.lantz.gui.gameview;
|
||||
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import se.lantz.gui.ListPanel;
|
||||
|
@ -12,7 +13,6 @@ import se.lantz.model.data.GameView;
|
|||
public class GameViewManager
|
||||
{
|
||||
private JComboBox<GameView> viewCombobox;
|
||||
private MainWindow mainWindow;
|
||||
private final MainViewModel uiModel;
|
||||
private ListPanel mainPanel;
|
||||
|
||||
|
@ -25,8 +25,7 @@ public class GameViewManager
|
|||
|
||||
public void openViewEditDialog(GameView gameView)
|
||||
{
|
||||
mainWindow = (MainWindow)SwingUtilities.getAncestorOfClass(MainWindow.class, viewCombobox);
|
||||
GameViewEditDialog dialog = new GameViewEditDialog(mainWindow, gameView);
|
||||
GameViewEditDialog dialog = new GameViewEditDialog(MainWindow.getInstance(), gameView);
|
||||
if (gameView.getGameViewId() == 0)
|
||||
{
|
||||
dialog.setTitle("Add game view");
|
||||
|
@ -36,7 +35,7 @@ public class GameViewManager
|
|||
dialog.setTitle("Edit game view");
|
||||
}
|
||||
dialog.pack();
|
||||
dialog.setLocationRelativeTo(mainWindow);
|
||||
dialog.setLocationRelativeTo(MainWindow.getInstance());
|
||||
if (dialog.showDialog())
|
||||
{
|
||||
//Update gameView instance with edited values in the dialog
|
||||
|
@ -60,4 +59,17 @@ public class GameViewManager
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteView(GameView view)
|
||||
{
|
||||
String message = "Do you want to delete the game view \"" + view.getName() + "\"?";
|
||||
int value = JOptionPane.showConfirmDialog(MainWindow.getInstance().getMainPanel(), message, "Delete game view", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||
if (value == JOptionPane.YES_OPTION)
|
||||
{
|
||||
uiModel.deleteGameView(view);
|
||||
//Trigger a reload of game views
|
||||
uiModel.reloadGameViews();
|
||||
MainWindow.getInstance().selectViewAfterRestore();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.beans.PropertyChangeEvent;
|
|||
import java.beans.PropertyChangeListener;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.DefaultComboBoxModel;
|
||||
|
@ -68,7 +69,9 @@ public class MainViewModel extends AbstractModel
|
|||
selectedGameView.setName("All Games");
|
||||
selectedGameView.setSqlQuery("");
|
||||
gameViewModel.addElement(selectedGameView);
|
||||
for (GameView gameView : dbConnector.loadGameViews())
|
||||
List<GameView> gameViewList = dbConnector.loadGameViews();
|
||||
Collections.sort(gameViewList);
|
||||
for (GameView gameView : gameViewList)
|
||||
{
|
||||
gameViewModel.addElement(gameView);
|
||||
}
|
||||
|
@ -364,6 +367,15 @@ public class MainViewModel extends AbstractModel
|
|||
reloadCurrentGameView();
|
||||
}
|
||||
|
||||
public void deleteGameView(GameView view)
|
||||
{
|
||||
if (view.getGameViewId() != GameView.ALL_GAMES_ID)
|
||||
{
|
||||
dbConnector.deleteView(view);
|
||||
reloadGameViews();
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> validateRequiredFields()
|
||||
{
|
||||
List<String> missingFields = new ArrayList<>();
|
||||
|
|
|
@ -6,7 +6,7 @@ import java.util.List;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class GameView
|
||||
public class GameView implements Comparable
|
||||
{
|
||||
public static final int ALL_GAMES_ID = -1;
|
||||
private static final Logger logger = LoggerFactory.getLogger(GameView.class);
|
||||
|
@ -139,4 +139,10 @@ public class GameView
|
|||
{
|
||||
this.gameCount = count;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Object o)
|
||||
{
|
||||
return this.name.compareTo(o.toString());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue