feat: carousel preview WIP 2
This commit is contained in:
parent
af6a4bbd38
commit
13e83218dc
|
@ -23,7 +23,7 @@ import javax.swing.event.HyperlinkEvent;
|
||||||
|
|
||||||
import se.lantz.gamebase.GamebaseImporter;
|
import se.lantz.gamebase.GamebaseImporter;
|
||||||
import se.lantz.gui.DeleteDialog.TYPE_OF_DELETE;
|
import se.lantz.gui.DeleteDialog.TYPE_OF_DELETE;
|
||||||
import se.lantz.gui.carousel.CarouselDialog;
|
import se.lantz.gui.carousel.CarouselPreviewDialog;
|
||||||
import se.lantz.gui.dbbackup.BackupProgressDialog;
|
import se.lantz.gui.dbbackup.BackupProgressDialog;
|
||||||
import se.lantz.gui.dbbackup.BackupWorker;
|
import se.lantz.gui.dbbackup.BackupWorker;
|
||||||
import se.lantz.gui.dbrestore.RestoreDbDialog;
|
import se.lantz.gui.dbrestore.RestoreDbDialog;
|
||||||
|
@ -1725,7 +1725,7 @@ public class MenuManager
|
||||||
private void showCarouselPreview()
|
private void showCarouselPreview()
|
||||||
{
|
{
|
||||||
//TEST
|
//TEST
|
||||||
CarouselDialog prefDialog = new CarouselDialog(this.mainWindow);
|
CarouselPreviewDialog prefDialog = new CarouselPreviewDialog(this.mainWindow, this.uiModel);
|
||||||
prefDialog.pack();
|
prefDialog.pack();
|
||||||
prefDialog.setLocationRelativeTo(MainWindow.getInstance());
|
prefDialog.setLocationRelativeTo(MainWindow.getInstance());
|
||||||
prefDialog.showDialog();
|
prefDialog.showDialog();
|
||||||
|
|
|
@ -3,17 +3,32 @@ package se.lantz.gui.carousel;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
import javax.swing.ImageIcon;
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JButton;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
|
import se.lantz.model.MainViewModel;
|
||||||
|
import se.lantz.model.carousel.CarouselPreviewModel;
|
||||||
|
import se.lantz.model.data.GameDetails;
|
||||||
|
|
||||||
import java.awt.GridBagLayout;
|
import java.awt.GridBagLayout;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import java.awt.GridBagConstraints;
|
import java.awt.GridBagConstraints;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.beans.Beans;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
|
||||||
public class BackgroundPanel extends JPanel {
|
public class BackgroundPanel extends JPanel {
|
||||||
public BackgroundPanel() {
|
private CarouselPreviewModel model;
|
||||||
|
|
||||||
|
public BackgroundPanel(final MainViewModel uiModel) {
|
||||||
|
model = new CarouselPreviewModel(uiModel);
|
||||||
|
|
||||||
GridBagLayout gridBagLayout = new GridBagLayout();
|
GridBagLayout gridBagLayout = new GridBagLayout();
|
||||||
setLayout(gridBagLayout);
|
setLayout(gridBagLayout);
|
||||||
GridBagConstraints gbc_coverPanel = new GridBagConstraints();
|
GridBagConstraints gbc_coverPanel = new GridBagConstraints();
|
||||||
|
@ -41,10 +56,43 @@ public class BackgroundPanel extends JPanel {
|
||||||
add(getTextPanel(), gbc_textPanel);
|
add(getTextPanel(), gbc_textPanel);
|
||||||
|
|
||||||
setBackground("/se/lantz/carousel/Carousel1400x788-modified.png");
|
setBackground("/se/lantz/carousel/Carousel1400x788-modified.png");
|
||||||
|
|
||||||
|
if (!Beans.isDesignTime())
|
||||||
|
{
|
||||||
|
model.addPropertyChangeListener(CarouselPreviewModel.SELECTED_GAME, e -> reloadScreens());
|
||||||
|
//trigger once at startup
|
||||||
|
reloadScreens();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void reloadScreens()
|
||||||
|
{
|
||||||
|
String filename = model.getSelectedGame().getScreen1();
|
||||||
|
BufferedImage image = null;
|
||||||
|
if (!filename.isEmpty())
|
||||||
|
{
|
||||||
|
File imagefile = new File("./screens/" + filename);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
image = ImageIO.read(imagefile);
|
||||||
|
Image newImage = image.getScaledInstance(694, 401, Image.SCALE_SMOOTH);
|
||||||
|
getScreenshotLabel().setIcon(new ImageIcon(newImage));
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
getScreenshotLabel().setIcon(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
getScreenshotLabel().setIcon(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Image background;
|
private Image background;
|
||||||
private JLabel lblNewLabel;
|
|
||||||
private JLabel screenShotLabel;
|
private JLabel screenShotLabel;
|
||||||
private TextPanel textPanel;
|
private TextPanel textPanel;
|
||||||
private CoverPanel coverPanel;
|
private CoverPanel coverPanel;
|
||||||
|
@ -72,16 +120,16 @@ public class BackgroundPanel extends JPanel {
|
||||||
private JLabel getScreenshotLabel() {
|
private JLabel getScreenshotLabel() {
|
||||||
if (screenShotLabel == null) {
|
if (screenShotLabel == null) {
|
||||||
screenShotLabel = new JLabel();
|
screenShotLabel = new JLabel();
|
||||||
screenShotLabel.setBackground(Color.YELLOW);
|
|
||||||
Image image = new ImageIcon(getClass().getResource("/se/lantz/carousel/test.png")).getImage();
|
// Image image = new ImageIcon(getClass().getResource(selectedGame.getScreen1())).getImage();
|
||||||
Image scaledImage = image.getScaledInstance(694, 401, Image.SCALE_SMOOTH);
|
// Image scaledImage = image.getScaledInstance(694, 401, Image.SCALE_SMOOTH);
|
||||||
screenShotLabel.setIcon(new ImageIcon(scaledImage));
|
// screenShotLabel.setIcon(new ImageIcon(scaledImage));
|
||||||
}
|
}
|
||||||
return screenShotLabel;
|
return screenShotLabel;
|
||||||
}
|
}
|
||||||
private TextPanel getTextPanel() {
|
private TextPanel getTextPanel() {
|
||||||
if (textPanel == null) {
|
if (textPanel == null) {
|
||||||
textPanel = new TextPanel();
|
textPanel = new TextPanel(model);
|
||||||
}
|
}
|
||||||
return textPanel;
|
return textPanel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
package se.lantz.gui.carousel;
|
|
||||||
|
|
||||||
import java.awt.Dimension;
|
|
||||||
import java.awt.Frame;
|
|
||||||
|
|
||||||
import se.lantz.gui.BaseDialog;
|
|
||||||
|
|
||||||
public class CarouselDialog extends BaseDialog
|
|
||||||
{
|
|
||||||
private BackgroundPanel panel;
|
|
||||||
|
|
||||||
public CarouselDialog(Frame owner)
|
|
||||||
{
|
|
||||||
super(owner);
|
|
||||||
setTitle("Carousel preview");
|
|
||||||
addContent(getPreferencesTabPanel());
|
|
||||||
getOkButton().setPreferredSize(null);
|
|
||||||
this.setPreferredSize(new Dimension(1400, 802));
|
|
||||||
this.setResizable(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private BackgroundPanel getPreferencesTabPanel()
|
|
||||||
{
|
|
||||||
if (panel == null)
|
|
||||||
{
|
|
||||||
panel = new BackgroundPanel();
|
|
||||||
}
|
|
||||||
return panel;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
package se.lantz.gui.carousel;
|
||||||
|
|
||||||
|
import java.awt.Dimension;
|
||||||
|
import java.awt.Frame;
|
||||||
|
import java.beans.Beans;
|
||||||
|
|
||||||
|
import se.lantz.gui.BaseDialog;
|
||||||
|
import se.lantz.model.MainViewModel;
|
||||||
|
|
||||||
|
public class CarouselPreviewDialog extends BaseDialog
|
||||||
|
{
|
||||||
|
private BackgroundPanel panel;
|
||||||
|
private MainViewModel uiModel;
|
||||||
|
|
||||||
|
public CarouselPreviewDialog(final Frame owner, final MainViewModel uiModel)
|
||||||
|
{
|
||||||
|
super(owner);
|
||||||
|
this.uiModel = uiModel;
|
||||||
|
addContent(getBackgroundPanel());
|
||||||
|
getOkButton().setPreferredSize(null);
|
||||||
|
getOkButton().setText("Close");
|
||||||
|
getCancelButton().setVisible(false);
|
||||||
|
this.setPreferredSize(new Dimension(1400, 802));
|
||||||
|
this.setResizable(false);
|
||||||
|
this.setModal(false);
|
||||||
|
if (!Beans.isDesignTime())
|
||||||
|
{
|
||||||
|
uiModel.addPropertyChangeListener("selectedGamelistView", e -> modelChanged());
|
||||||
|
//trigger once at startup
|
||||||
|
modelChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void modelChanged()
|
||||||
|
{
|
||||||
|
setTitle("Carousel preview - " + uiModel.getSelectedGameView().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
private BackgroundPanel getBackgroundPanel()
|
||||||
|
{
|
||||||
|
if (panel == null)
|
||||||
|
{
|
||||||
|
panel = new BackgroundPanel(uiModel);
|
||||||
|
}
|
||||||
|
return panel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,12 +23,18 @@ public class CoverPanel extends JPanel
|
||||||
{
|
{
|
||||||
private JPanel panel;
|
private JPanel panel;
|
||||||
private JScrollPane scrollPane;
|
private JScrollPane scrollPane;
|
||||||
private JLabel test1Label;
|
|
||||||
|
int scrollingTimerIndex = 0;
|
||||||
|
boolean scrolingStopped = true;
|
||||||
|
boolean scrollDirectionRight = true;
|
||||||
|
|
||||||
|
private ActionListener timerListener = e -> scrollFromTimer();
|
||||||
|
|
||||||
|
private Timer scrolingTimer = new Timer(10, timerListener);
|
||||||
|
|
||||||
public CoverPanel()
|
public CoverPanel()
|
||||||
{
|
{
|
||||||
// setBorder(new LineBorder(new Color(0, 0, 0)));
|
// setBorder(new LineBorder(new Color(0, 0, 0)));
|
||||||
setBackground(new Color(138, 137, 138));
|
|
||||||
GridBagLayout gridBagLayout = new GridBagLayout();
|
GridBagLayout gridBagLayout = new GridBagLayout();
|
||||||
gridBagLayout.rowWeights = new double[] { 1.0 };
|
gridBagLayout.rowWeights = new double[] { 1.0 };
|
||||||
gridBagLayout.columnWeights = new double[] { 1.0 };
|
gridBagLayout.columnWeights = new double[] { 1.0 };
|
||||||
|
@ -73,37 +79,26 @@ public class CoverPanel extends JPanel
|
||||||
scrollOneGame(false);
|
scrollOneGame(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
panel.setBackground(new Color(138, 137, 138));
|
||||||
}
|
}
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test = 0;
|
|
||||||
|
|
||||||
ActionListener timerListener = (e) -> {
|
|
||||||
scrollFromTimer();
|
|
||||||
};
|
|
||||||
|
|
||||||
Timer javaTimer = new Timer(10, timerListener);
|
|
||||||
boolean stopped = true;
|
|
||||||
boolean scrollDirectionRight = true;
|
|
||||||
|
|
||||||
private void scrollFromTimer()
|
private void scrollFromTimer()
|
||||||
{
|
{
|
||||||
int valueToScroll = scrollDirectionRight
|
int currentScrollValue = scrollPane.getHorizontalScrollBar().getValue();
|
||||||
? scrollPane.getHorizontalScrollBar().getValue() + 32
|
int newScrollValue = scrollDirectionRight ? currentScrollValue + 32 : currentScrollValue - 32;
|
||||||
: scrollPane.getHorizontalScrollBar().getValue() - 32;
|
|
||||||
//Scroll
|
//Scroll
|
||||||
scrollPane.getHorizontalScrollBar().setValue(valueToScroll);
|
scrollPane.getHorizontalScrollBar().setValue(newScrollValue);
|
||||||
test++;
|
scrollingTimerIndex++;
|
||||||
if (test > 4)
|
if (scrollingTimerIndex > 5)
|
||||||
{
|
{
|
||||||
int lastScrollValue = scrollDirectionRight
|
//Scroll one last time
|
||||||
? scrollPane.getHorizontalScrollBar().getValue() + 10
|
int lastScrollValue = scrollDirectionRight ? currentScrollValue + 10 : currentScrollValue - 10;
|
||||||
: scrollPane.getHorizontalScrollBar().getValue() - 10;
|
|
||||||
scrollPane.getHorizontalScrollBar().setValue(lastScrollValue);
|
scrollPane.getHorizontalScrollBar().setValue(lastScrollValue);
|
||||||
test = 0;
|
scrollingTimerIndex = 0;
|
||||||
javaTimer.stop();
|
scrolingTimer.stop();
|
||||||
stopped = true;
|
scrolingStopped = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,14 +113,12 @@ public class CoverPanel extends JPanel
|
||||||
scrollPane.getHorizontalScrollBar().setUnitIncrement(10);
|
scrollPane.getHorizontalScrollBar().setUnitIncrement(10);
|
||||||
scrollPane.getHorizontalScrollBar().setBlockIncrement(10);
|
scrollPane.getHorizontalScrollBar().setBlockIncrement(10);
|
||||||
|
|
||||||
|
//Remove all previously registered mouse wheel listeners to not interfere
|
||||||
for (MouseWheelListener listener : scrollPane.getMouseWheelListeners())
|
for (MouseWheelListener listener : scrollPane.getMouseWheelListeners())
|
||||||
{
|
{
|
||||||
scrollPane.removeMouseWheelListener(listener);
|
scrollPane.removeMouseWheelListener(listener);
|
||||||
}
|
}
|
||||||
|
scrollPane.addMouseWheelListener(a -> scrollOneGame(a.getWheelRotation() > 0));
|
||||||
scrollPane.addMouseWheelListener(a -> {
|
|
||||||
scrollOneGame(a.getWheelRotation() > 0);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
return scrollPane;
|
return scrollPane;
|
||||||
}
|
}
|
||||||
|
@ -150,16 +143,18 @@ public class CoverPanel extends JPanel
|
||||||
JLabel label = new JLabel("Label");
|
JLabel label = new JLabel("Label");
|
||||||
label.setBorder(new LineBorder(new Color(0, 0, 0)));
|
label.setBorder(new LineBorder(new Color(0, 0, 0)));
|
||||||
label.setPreferredSize(new Dimension(125, 175));
|
label.setPreferredSize(new Dimension(125, 175));
|
||||||
|
// label.setBackground(Color.red);
|
||||||
|
// label.setOpaque(true);
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void scrollOneGame(boolean right)
|
private void scrollOneGame(boolean right)
|
||||||
{
|
{
|
||||||
if (stopped)
|
if (scrolingStopped)
|
||||||
{
|
{
|
||||||
scrollDirectionRight = right;
|
scrollDirectionRight = right;
|
||||||
stopped = false;
|
scrolingStopped = false;
|
||||||
javaTimer.start();
|
scrolingTimer.start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,9 @@ import java.awt.GridBagConstraints;
|
||||||
import java.awt.GridBagLayout;
|
import java.awt.GridBagLayout;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
import java.awt.LayoutManager;
|
import java.awt.LayoutManager;
|
||||||
|
import java.beans.Beans;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
@ -16,6 +19,9 @@ import javax.swing.text.MutableAttributeSet;
|
||||||
import javax.swing.text.SimpleAttributeSet;
|
import javax.swing.text.SimpleAttributeSet;
|
||||||
import javax.swing.text.StyleConstants;
|
import javax.swing.text.StyleConstants;
|
||||||
|
|
||||||
|
import se.lantz.model.carousel.CarouselPreviewModel;
|
||||||
|
import se.lantz.model.data.GameDetails;
|
||||||
|
|
||||||
public class TextPanel extends JPanel
|
public class TextPanel extends JPanel
|
||||||
{
|
{
|
||||||
private JLabel titleLabel;
|
private JLabel titleLabel;
|
||||||
|
@ -24,11 +30,14 @@ public class TextPanel extends JPanel
|
||||||
private JLabel composerLabel;
|
private JLabel composerLabel;
|
||||||
private JLabel genreLabel;
|
private JLabel genreLabel;
|
||||||
private JLabel yearLabel;
|
private JLabel yearLabel;
|
||||||
|
private CarouselPreviewModel model;
|
||||||
|
|
||||||
public TextPanel()
|
Map<String, String> genreMap = new HashMap<>();
|
||||||
|
|
||||||
|
public TextPanel(final CarouselPreviewModel model)
|
||||||
{
|
{
|
||||||
|
this.model = model;
|
||||||
setFont(new Font("Microsoft Sans Serif", Font.BOLD, 20));
|
setFont(new Font("Microsoft Sans Serif", Font.BOLD, 20));
|
||||||
// setBorder(new LineBorder(new Color(0, 0, 0)));
|
|
||||||
setOpaque(false);
|
setOpaque(false);
|
||||||
GridBagLayout gridBagLayout = new GridBagLayout();
|
GridBagLayout gridBagLayout = new GridBagLayout();
|
||||||
setLayout(gridBagLayout);
|
setLayout(gridBagLayout);
|
||||||
|
@ -48,7 +57,7 @@ public class TextPanel extends JPanel
|
||||||
gbc_textArea.fill = GridBagConstraints.BOTH;
|
gbc_textArea.fill = GridBagConstraints.BOTH;
|
||||||
gbc_textArea.gridx = 0;
|
gbc_textArea.gridx = 0;
|
||||||
gbc_textArea.gridy = 1;
|
gbc_textArea.gridy = 1;
|
||||||
add(getTextArea(), gbc_textArea);
|
add(getTextPane(), gbc_textArea);
|
||||||
GridBagConstraints gbc_authorLabel = new GridBagConstraints();
|
GridBagConstraints gbc_authorLabel = new GridBagConstraints();
|
||||||
gbc_authorLabel.gridwidth = 2;
|
gbc_authorLabel.gridwidth = 2;
|
||||||
gbc_authorLabel.insets = new Insets(6, 145, 0, 0);
|
gbc_authorLabel.insets = new Insets(6, 145, 0, 0);
|
||||||
|
@ -77,9 +86,41 @@ public class TextPanel extends JPanel
|
||||||
gbc_yearLabel.gridx = 1;
|
gbc_yearLabel.gridx = 1;
|
||||||
gbc_yearLabel.gridy = 4;
|
gbc_yearLabel.gridy = 4;
|
||||||
add(getYearLabel(), gbc_yearLabel);
|
add(getYearLabel(), gbc_yearLabel);
|
||||||
// TODO Auto-generated constructor stub
|
if (!Beans.isDesignTime())
|
||||||
|
{
|
||||||
|
model.addPropertyChangeListener(CarouselPreviewModel.SELECTED_GAME, e -> selectedGameChanged());
|
||||||
|
//trigger once at startup
|
||||||
|
selectedGameChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO Centralize this. look at GenreComboBox
|
||||||
|
genreMap.put("", "----");
|
||||||
|
genreMap.put("adventure", "Adventure");
|
||||||
|
genreMap.put("driving", "Driving");
|
||||||
|
genreMap.put("maze", "Maze");
|
||||||
|
genreMap.put("platform", "Platform");
|
||||||
|
genreMap.put("programming", "Programming");
|
||||||
|
genreMap.put("puzzle", "Puzzle");
|
||||||
|
genreMap.put("shoot", "Shoot'em up");
|
||||||
|
genreMap.put("simulation", "Simulation");
|
||||||
|
genreMap.put("sport", "Sport");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void selectedGameChanged()
|
||||||
|
{
|
||||||
|
GameDetails selectedGame = model.getSelectedGame();
|
||||||
|
if (selectedGame != null)
|
||||||
|
{
|
||||||
|
getTitleLabel().setText(selectedGame.getTitle());
|
||||||
|
getTextPane().setText(selectedGame.getDescription());
|
||||||
|
getAuthorLabel().setText(selectedGame.getAuthor().isEmpty() ? " " : selectedGame.getAuthor());
|
||||||
|
getComposerLabel().setText(selectedGame.getComposer().isEmpty() ? " " : selectedGame.getComposer());
|
||||||
|
getGenreLabel().setText(genreMap.get(selectedGame.getGenre()));
|
||||||
|
getYearLabel().setText(selectedGame.getYear() + "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public TextPanel(LayoutManager layout)
|
public TextPanel(LayoutManager layout)
|
||||||
{
|
{
|
||||||
super(layout);
|
super(layout);
|
||||||
|
@ -103,19 +144,17 @@ public class TextPanel extends JPanel
|
||||||
if (titleLabel == null)
|
if (titleLabel == null)
|
||||||
{
|
{
|
||||||
titleLabel = new JLabel("California Games");
|
titleLabel = new JLabel("California Games");
|
||||||
// titleLabel.setBorder(new LineBorder(new Color(0, 0, 0)));
|
|
||||||
titleLabel.setBackground(Color.ORANGE);
|
titleLabel.setBackground(Color.ORANGE);
|
||||||
titleLabel.setFont(new Font("Microsoft Sans Serif", Font.BOLD, 37));
|
titleLabel.setFont(new Font("Microsoft Sans Serif", Font.BOLD, 37));
|
||||||
}
|
}
|
||||||
return titleLabel;
|
return titleLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JTextPane getTextArea()
|
private JTextPane getTextPane()
|
||||||
{
|
{
|
||||||
if (textPane == null)
|
if (textPane == null)
|
||||||
{
|
{
|
||||||
textPane = new JTextPane();
|
textPane = new JTextPane();
|
||||||
// textPane.setBorder(new LineBorder(new Color(0, 0, 0)));
|
|
||||||
textPane.setForeground(Color.WHITE);
|
textPane.setForeground(Color.WHITE);
|
||||||
textPane.setFont(new Font("Verdana", Font.PLAIN, 21));
|
textPane.setFont(new Font("Verdana", Font.PLAIN, 21));
|
||||||
textPane.setOpaque(false);
|
textPane.setOpaque(false);
|
||||||
|
@ -124,6 +163,8 @@ public class TextPanel extends JPanel
|
||||||
textPane
|
textPane
|
||||||
.setText(text512);
|
.setText(text512);
|
||||||
changeLineSpacing(textPane, -0.12f, true);
|
changeLineSpacing(textPane, -0.12f, true);
|
||||||
|
textPane.setEditable(false);
|
||||||
|
textPane.setFocusable(false);
|
||||||
textPane.setPreferredSize(new Dimension(100, 275));
|
textPane.setPreferredSize(new Dimension(100, 275));
|
||||||
}
|
}
|
||||||
return textPane;
|
return textPane;
|
||||||
|
|
|
@ -350,6 +350,16 @@ public class MainViewModel extends AbstractModel
|
||||||
return readGameDetailsForExport(worker, gamesList);
|
return readGameDetailsForExport(worker, gamesList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<GameDetails> readGameDetailsForCarouselPreview()
|
||||||
|
{
|
||||||
|
List<GameDetails> returnList = new ArrayList<>();
|
||||||
|
for (GameListData game : dbConnector.fetchGamesByView(getSelectedGameView()))
|
||||||
|
{
|
||||||
|
returnList.add(dbConnector.getGameDetails(game.getGameId()));
|
||||||
|
}
|
||||||
|
return returnList;
|
||||||
|
}
|
||||||
|
|
||||||
public void exportGameInfoFile(GameDetails gameDetails, File targetDir, PublishWorker worker, boolean fileLoader)
|
public void exportGameInfoFile(GameDetails gameDetails, File targetDir, PublishWorker worker, boolean fileLoader)
|
||||||
{
|
{
|
||||||
fileManager.exportGameInfoFile(gameDetails, targetDir, worker, fileLoader);
|
fileManager.exportGameInfoFile(gameDetails, targetDir, worker, fileLoader);
|
||||||
|
@ -502,6 +512,7 @@ public class MainViewModel extends AbstractModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.disableChangeNotification(false);
|
this.disableChangeNotification(false);
|
||||||
|
this.notifyChange("selectedGamelistView", null, null);
|
||||||
logger.debug("...done.");
|
logger.debug("...done.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1167,4 +1178,9 @@ public class MainViewModel extends AbstractModel
|
||||||
g.drawString(title, imgWidth / 2 - (int) textWidth / 2, imgHeight / 2 + (int) textHeight / 2);
|
g.drawString(title, imgWidth / 2 - (int) textWidth / 2, imgHeight / 2 + (int) textHeight / 2);
|
||||||
g.dispose();
|
g.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public GameDetails getCurrentGameDetails()
|
||||||
|
{
|
||||||
|
return this.currentGameDetails;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
package se.lantz.model.carousel;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import se.lantz.model.AbstractModel;
|
||||||
|
import se.lantz.model.MainViewModel;
|
||||||
|
import se.lantz.model.data.GameDetails;
|
||||||
|
|
||||||
|
public class CarouselPreviewModel extends AbstractModel
|
||||||
|
{
|
||||||
|
public static final String SELECTED_GAME = "selectedGame";
|
||||||
|
public static final String RELOAD_CAROUSEL = "reloadCarousel";
|
||||||
|
private MainViewModel mainModel;
|
||||||
|
private List<GameDetails> dataList = new ArrayList<>();
|
||||||
|
|
||||||
|
private GameDetails selectedGame = null;
|
||||||
|
|
||||||
|
public CarouselPreviewModel(MainViewModel mainModel)
|
||||||
|
{
|
||||||
|
this.mainModel = mainModel;
|
||||||
|
mainModel.addPropertyChangeListener("selectedGamelistView", e -> reloadCarousel());
|
||||||
|
mainModel.addPropertyChangeListener("gameSelected", e -> setSelectedGame(mainModel.getCurrentGameDetails()));
|
||||||
|
dataList = mainModel.readGameDetailsForCarouselPreview();
|
||||||
|
//Just to start with something
|
||||||
|
selectedGame = dataList.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void reloadCarousel()
|
||||||
|
{
|
||||||
|
this.dataList = mainModel.readGameDetailsForCarouselPreview();
|
||||||
|
this.notifyChange(RELOAD_CAROUSEL, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GameDetails> getGameDetails()
|
||||||
|
{
|
||||||
|
return dataList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GameDetails getSelectedGame()
|
||||||
|
{
|
||||||
|
return selectedGame;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectedGame(GameDetails selectedGame)
|
||||||
|
{
|
||||||
|
this.selectedGame = selectedGame;
|
||||||
|
this.notifyChange(SELECTED_GAME, null, null);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue