From 78dc45871b480a6307d22dd1deed921a53dca1e8 Mon Sep 17 00:00:00 2001 From: wsbrenk Date: Mon, 20 May 2024 19:41:30 +0200 Subject: [PATCH] #2063 download missing world details --- src/main/java/core/db/DBManager.java | 12 ++- .../java/core/model/WorldDetailsManager.java | 8 +- src/main/java/core/net/MyConnector.java | 13 +-- src/main/java/module/ifa/RightPanel.java | 94 +++++++------------ 4 files changed, 52 insertions(+), 75 deletions(-) diff --git a/src/main/java/core/db/DBManager.java b/src/main/java/core/db/DBManager.java index 1bbdf8501..b2115ab1f 100644 --- a/src/main/java/core/db/DBManager.java +++ b/src/main/java/core/db/DBManager.java @@ -328,7 +328,7 @@ public void disconnect() { /** * connect to the database */ - private void connect() throws Exception { + private void connect() { User current_user = UserManager.instance().getCurrentUser(); if (connectionManager != null) { connectionManager.connect(current_user.getDbURL(), current_user.getDbUsername(), current_user.getDbPwd(), UserManager.instance().getDriver()); @@ -1578,6 +1578,16 @@ public void storeWorldDetailLeagues(List leagues) { } } + /** + * Save single world detail league. + * + * @param league The league + */ + public void storeWorldDetailLeague(WorldDetailLeague league) { + WorldDetailsTable table = (WorldDetailsTable) getTable(WorldDetailsTable.TABLENAME); + table.storeWorldDetailsLeague(league); + } + // -------------------------------------------------------------------------------- // -------------------------------- Statistik Part // -------------------------------- diff --git a/src/main/java/core/model/WorldDetailsManager.java b/src/main/java/core/model/WorldDetailsManager.java index fb02c8030..537a30b2d 100644 --- a/src/main/java/core/model/WorldDetailsManager.java +++ b/src/main/java/core/model/WorldDetailsManager.java @@ -12,8 +12,8 @@ public class WorldDetailsManager { private static WorldDetailsManager WMANAGER = null; private List leagues; - private HashMap countryMap = new HashMap(); - private HashMap leagueMap = new HashMap(); + private final HashMap countryMap = new HashMap<>(); + private final HashMap leagueMap = new HashMap<>(); private int totalUsers; public static WorldDetailsManager instance() { @@ -66,8 +66,8 @@ public WorldDetailLeague getWorldDetailLeagueByCountryId(Integer countryId) { var ret = countryMap.get(countryId); if (ret == null) { ret = downloadWorldDetailLeague(countryId); - countryMap.put(countryId, ret); - DBManager.instance().storeWorldDetailLeagues(Collections.singletonList(ret)); + DBManager.instance().storeWorldDetailLeague(ret); + initialize(); } return ret; } diff --git a/src/main/java/core/net/MyConnector.java b/src/main/java/core/net/MyConnector.java index d4a7a9e40..3e21bd631 100644 --- a/src/main/java/core/net/MyConnector.java +++ b/src/main/java/core/net/MyConnector.java @@ -508,7 +508,7 @@ public String getWorldDetails(int leagueId) throws IOException { return getCHPPWebFile(url); } - public String getWorldDetailsByCountryId(int countryId) throws IOException { + public String getWorldDetailsByCountryId(int countryId) { String url = htUrl + "?file=worlddetails&version=1.9&countryID=" + countryId; return getCHPPWebFile(url); } @@ -577,17 +577,6 @@ public void enableProxy(ProxySettings proxySettings) { } } - /** - * Get the region id for a certain team. - */ - public String fetchRegionID(int teamId) { - String xml = getTeamDetails(teamId); - if (!xml.isEmpty()){ - return XMLTeamDetailsParser.fetchRegionID(xml); - } - return "-1"; - } - public InputStream getFileFromWeb(String url, boolean displaysettingsScreen) { if (displaysettingsScreen) { // Show Screen diff --git a/src/main/java/module/ifa/RightPanel.java b/src/main/java/module/ifa/RightPanel.java index 2f613625f..db83915cc 100644 --- a/src/main/java/module/ifa/RightPanel.java +++ b/src/main/java/module/ifa/RightPanel.java @@ -22,10 +22,7 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.image.BufferedImage; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; import java.util.List; import javax.swing.BorderFactory; @@ -42,6 +39,7 @@ public class RightPanel extends JPanel { + @Serial private static final long serialVersionUID = -5038012557489983903L; private JButton updateButton; private JButton saveImageButton; @@ -56,10 +54,6 @@ public RightPanel(IfaModel model) { addListeners(); } - public ImageDesignPanel getImageDesignPanel() { - return this.imageDesignPanel; - } - private void initComponents() { setLayout(new GridBagLayout()); setBorder(BorderFactory.createTitledBorder(HOVerwaltung.instance().getLanguageString( @@ -106,56 +100,40 @@ private void initComponents() { } private void addListeners() { - this.awayRadioButton.addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(ItemEvent evt) { - if (evt.getStateChange() == ItemEvent.SELECTED) { - imageDesignPanel.setAway(true); - } - } - }); - - this.homeRadioButton.addItemListener(new ItemListener() { - - @Override - public void itemStateChanged(ItemEvent evt) { - if (evt.getStateChange() == ItemEvent.SELECTED) { - imageDesignPanel.setAway(false); - } - } - }); - - this.updateButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent arg0) { - String worldDetails; - try { - worldDetails = MyConnector.instance().getWorldDetails(0); - List leagues = XMLWorldDetailsParser.parseDetails(XMLManager - .parseString(worldDetails)); - DBManager.instance().storeWorldDetailLeagues(leagues); - WorldDetailsManager.instance().refresh(); - } catch (IOException e1) { - e1.printStackTrace(); - } - PluginIfaUtils.updateMatchesTable(); - RightPanel.this.model.reload(); - } - }); - - this.saveImageButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - try { - saveImage(); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - }); + this.awayRadioButton.addItemListener(evt -> { + if (evt.getStateChange() == ItemEvent.SELECTED) { + imageDesignPanel.setAway(true); + } + }); + + this.homeRadioButton.addItemListener(evt -> { + if (evt.getStateChange() == ItemEvent.SELECTED) { + imageDesignPanel.setAway(false); + } + }); + + this.updateButton.addActionListener(arg0 -> { + String worldDetails; + try { + worldDetails = MyConnector.instance().getWorldDetails(0); + List leagues = XMLWorldDetailsParser.parseDetails(XMLManager + .parseString(worldDetails)); + DBManager.instance().storeWorldDetailLeagues(leagues); + WorldDetailsManager.instance().refresh(); + } catch (IOException e1) { + e1.printStackTrace(); + } + PluginIfaUtils.updateMatchesTable(); + RightPanel.this.model.reload(); + }); + + this.saveImageButton.addActionListener(e -> { + try { + saveImage(); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + }); }