diff --git a/src/database/DatabaseManager.java b/src/database/DatabaseManager.java index bf40fe9..74095ae 100644 --- a/src/database/DatabaseManager.java +++ b/src/database/DatabaseManager.java @@ -76,6 +76,7 @@ public class DatabaseManager { data.getYoutubeLink().get(i), // YouTube-Link Integer.parseInt(data.getQualification().get(i)), // Qualifikation data.getVictors().get(i), // Sieger + false, false ); } diff --git a/src/database/Sqlite.java b/src/database/Sqlite.java index 43a31fe..f522866 100644 --- a/src/database/Sqlite.java +++ b/src/database/Sqlite.java @@ -15,278 +15,285 @@ import java.sql.ResultSet; public class Sqlite { private static String url = "jdbc:sqlite:C:\\ExtremeDemonList\\database\\sqlite\\"; - private static String filename; - - private ArrayList levelname = new ArrayList(); - private ArrayList levelID = new ArrayList(); - private ArrayList author = new ArrayList(); - private ArrayList creators = new ArrayList(); - private ArrayList verifier = new ArrayList(); - private ArrayList verificationLink = new ArrayList(); - private ArrayList percenttoqualify = new ArrayList(); - private ArrayList records = new ArrayList(); - private ArrayList completed = new ArrayList(); - private ArrayList rawLevelNames = new ArrayList(); - private ArrayList attempts = new ArrayList(); + private static String filename; + + private ArrayList levelname = new ArrayList(); + private ArrayList levelID = new ArrayList(); + private ArrayList author = new ArrayList(); + private ArrayList creators = new ArrayList(); + private ArrayList verifier = new ArrayList(); + private ArrayList verificationLink = new ArrayList(); + private ArrayList percenttoqualify = new ArrayList(); + private ArrayList records = new ArrayList(); + private ArrayList completed = new ArrayList(); + private ArrayList rawLevelNames = new ArrayList(); + private ArrayList attempts = new ArrayList(); + private ArrayList locked = new ArrayList(); // New column - - public ArrayList getLevelname() { - return levelname; - } + public ArrayList getLevelname() { + return levelname; + } - public ArrayList getLevelID() { - return levelID; - } + public ArrayList getLevelID() { + return levelID; + } - public ArrayList getAuthor() { - return author; - } + public ArrayList getAuthor() { + return author; + } - public ArrayList getCreators() { - return creators; - } + public ArrayList getCreators() { + return creators; + } - public ArrayList getVerifier() { - return verifier; - } + public ArrayList getVerifier() { + return verifier; + } - public ArrayList getVerificationLink() { - return verificationLink; - } + public ArrayList getVerificationLink() { + return verificationLink; + } - public ArrayList getPercenttoqualify() { - return percenttoqualify; - } + public ArrayList getPercenttoqualify() { + return percenttoqualify; + } - public ArrayList getRecords() { - return records; - } + public ArrayList getRecords() { + return records; + } - public ArrayList getCompleted() { - return completed; - } + public ArrayList getCompleted() { + return completed; + } - public ArrayList getRawLevelNames() { - return rawLevelNames; - } - - public ArrayList getAttempts() { - return attempts; - } + public ArrayList getRawLevelNames() { + return rawLevelNames; + } + + public ArrayList getAttempts() { + return attempts; + } - public Sqlite(String dbname) { // setzt variablen - url = "jdbc:sqlite:C:\\ExtremeDemonList\\database\\sqlite\\"; - url += dbname + ".db"; - filename = dbname + ""; - - } + public ArrayList getLocked() { + return locked; + } - public boolean exists() { // überprüft, ob datenbank existiert - - File file = new File("C:\\ExtremeDemonList\\database\\sqlite\\" + filename + ".db"); - if(file.exists()) { - return true; // ja - } else { - return false; // nein - } - } - - public void createNewDatabase(String dbname) { // erstellt eine neue datenbank - url = "jdbc:sqlite:C:\\ExtremeDemonList\\database\\sqlite\\"; - url += dbname + ".db"; - filename = dbname; - try (Connection conn = DriverManager.getConnection(url)) { - } catch(SQLException e) { - e.printStackTrace(); - } - } + public Sqlite(String dbname) { // setzt variablen + url = "jdbc:sqlite:C:\\ExtremeDemonList\\database\\sqlite\\"; + url += dbname + ".db"; + filename = dbname + ""; + + } - - public void createNewTable(String tablename) { - String sql = "CREATE TABLE IF NOT EXISTS " + tablename + " (\n" - + " id INTEGER PRIMARY KEY,\n" - + " placement INTEGER NOT NULL,\n" - + " levelname TEXT NOT NULL,\n" - + " levelnameRaw TEXT NOT NULL,\n" // Hinzugefügt - + " levelID INTEGER NOT NULL,\n" - + " author TEXT NOT NULL,\n" - + " creators TEXT NOT NULL,\n" - + " verifier TEXT NOT NULL,\n" - + " verificationLink TEXT NOT NULL,\n" - + " percentToQualify INTEGER NOT NULL,\n" - + " records TEXT NOT NULL,\n" - + " attempts INTEGER NOT NULL,\n" - + " completed BOOLEAN NOT NULL\n" - + ");"; + public boolean exists() { // überprüft, ob datenbank existiert + + File file = new File("C:\\ExtremeDemonList\\database\\sqlite\\" + filename + ".db"); + if(file.exists()) { + return true; // ja + } else { + return false; // nein + } + } + + public void createNewDatabase(String dbname) { // erstellt eine neue datenbank + url = "jdbc:sqlite:C:\\ExtremeDemonList\\database\\sqlite\\"; + url += dbname + ".db"; + filename = dbname; + try (Connection conn = DriverManager.getConnection(url)) { + } catch(SQLException e) { + e.printStackTrace(); + } + } + + public void createNewTable(String tablename) { + String sql = "CREATE TABLE IF NOT EXISTS " + tablename + " (\n" + + " id INTEGER PRIMARY KEY,\n" + + " placement INTEGER NOT NULL,\n" + + " levelname TEXT NOT NULL,\n" + + " levelnameRaw TEXT NOT NULL,\n" // Hinzugefügt + + " levelID INTEGER NOT NULL,\n" + + " author TEXT NOT NULL,\n" + + " creators TEXT NOT NULL,\n" + + " verifier TEXT NOT NULL,\n" + + " verificationLink TEXT NOT NULL,\n" + + " percentToQualify INTEGER NOT NULL,\n" + + " records TEXT NOT NULL,\n" + + " attempts INTEGER NOT NULL,\n" + + " completed BOOLEAN NOT NULL,\n" + + " locked BOOLEAN NOT NULL\n" // Neue Spalte + + ");"; - - try (Connection conn = DriverManager.getConnection(url); + + try (Connection conn = DriverManager.getConnection(url); Statement stmt = conn.createStatement()) { // create a new table stmt.execute(sql); } catch (SQLException e) { System.out.println(e.getMessage()); } - } - - public void insertData(String tablename, Integer attempts, int placement, String levelname, String levelnameRaw, int levelid, String author, String creators, String verifier, String verificationLink, int percenttoqualify, String records, boolean completed) { - String sql = "INSERT INTO " + tablename + " (placement, levelname, levelnameRaw, levelID, author, creators, verifier, verificationLink, percentToQualify, records, attempts, completed) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - - System.out.println("tablename: " + levelname); - - try (Connection conn = DriverManager.getConnection(url); - PreparedStatement pstmt = conn.prepareStatement(sql)) { - pstmt.setInt(1, placement); - pstmt.setString(2, levelname); - pstmt.setString(3, levelnameRaw); - pstmt.setInt(4, levelid); - pstmt.setString(5, author); - pstmt.setString(6, creators); - pstmt.setString(7, verifier); - pstmt.setString(8, verificationLink); - pstmt.setInt(9, percenttoqualify); - pstmt.setString(10, records); - pstmt.setInt(11, attempts); - pstmt.setBoolean(12, completed); - pstmt.executeUpdate(); - - } catch (SQLException e) { - e.printStackTrace(); - } - } + } + + public void insertData(String tablename, Integer attempts, int placement, String levelname, String levelnameRaw, int levelid, String author, String creators, String verifier, String verificationLink, int percenttoqualify, String records, boolean completed, boolean locked) { + String sql = "INSERT INTO " + tablename + " (placement, levelname, levelnameRaw, levelID, author, creators, verifier, verificationLink, percentToQualify, records, attempts, completed, locked) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + + System.out.println("tablename: " + levelname); + + try (Connection conn = DriverManager.getConnection(url); + PreparedStatement pstmt = conn.prepareStatement(sql)) { + pstmt.setInt(1, placement); + pstmt.setString(2, levelname); + pstmt.setString(3, levelnameRaw); + pstmt.setInt(4, levelid); + pstmt.setString(5, author); + pstmt.setString(6, creators); + pstmt.setString(7, verifier); + pstmt.setString(8, verificationLink); + pstmt.setInt(9, percenttoqualify); + pstmt.setString(10, records); + pstmt.setInt(11, attempts); + pstmt.setBoolean(12, completed); + pstmt.setBoolean(13, locked); + pstmt.executeUpdate(); + + } catch (SQLException e) { + e.printStackTrace(); + } + } - - public void queryData(String tablename) { - - String sql = "SELECT levelname, levelNameRaw, levelID, author, creators, verifier, verificationLink, percentToQualify, attempts, completed, records FROM " + tablename; - - try (Connection conn = DriverManager.getConnection(url); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(sql)){ - - // loop through the result set - while (rs.next()) { - levelname.add(rs.getString("levelname")); - levelID.add(rs.getInt("levelID") + ""); - author.add(rs.getString("author")); - creators.add(rs.getString("creators")); - verifier.add(rs.getString("verifier")); - verificationLink.add(rs.getString("verificationLink")); - percenttoqualify.add(rs.getInt("percentToQualify") + ""); - completed.add(rs.getBoolean("completed") + ""); - records.add(rs.getString("records")); - rawLevelNames.add(rs.getString("levelNameRaw")); - attempts.add(rs.getInt("attempts")); - - } - - } catch(SQLException e) { - e.printStackTrace(); - } - - } - - public void sortData(String tablename) throws SQLException { - FetchData data = new FetchData(); + + public void queryData(String tablename) { + + String sql = "SELECT levelname, levelNameRaw, levelID, author, creators, verifier, verificationLink, percentToQualify, attempts, completed, records, locked FROM " + tablename; + + try (Connection conn = DriverManager.getConnection(url); + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery(sql)){ + + // loop through the result set + while (rs.next()) { + levelname.add(rs.getString("levelname")); + levelID.add(rs.getInt("levelID") + ""); + author.add(rs.getString("author")); + creators.add(rs.getString("creators")); + verifier.add(rs.getString("verifier")); + verificationLink.add(rs.getString("verificationLink")); + percenttoqualify.add(rs.getInt("percentToQualify") + ""); + completed.add(rs.getBoolean("completed") + ""); + records.add(rs.getString("records")); + rawLevelNames.add(rs.getString("levelNameRaw")); + attempts.add(rs.getInt("attempts")); + locked.add(rs.getBoolean("locked")); // Get the value of the new column + } + + } catch(SQLException e) { + e.printStackTrace(); + } + + } + + public void sortData(String tablename) throws SQLException { + FetchData data = new FetchData(); - ArrayList levelnamelocal = new ArrayList(); - ArrayList levelIDlocal = new ArrayList(); - ArrayList authorlocal = new ArrayList(); - ArrayList creatorslocal = new ArrayList(); - ArrayList verifierlocal = new ArrayList(); - ArrayList verificationLinklocal = new ArrayList(); - ArrayList percenttoqualifylocal = new ArrayList(); - ArrayList recordslocal = new ArrayList(); - ArrayList completedlocal = new ArrayList(); - ArrayList rawLevelNameslocal = new ArrayList(); - ArrayList attemptsLocal = new ArrayList(); + ArrayList levelnamelocal = new ArrayList(); + ArrayList levelIDlocal = new ArrayList(); + ArrayList authorlocal = new ArrayList(); + ArrayList creatorslocal = new ArrayList(); + ArrayList verifierlocal = new ArrayList(); + ArrayList verificationLinklocal = new ArrayList(); + ArrayList percenttoqualifylocal = new ArrayList(); + ArrayList recordslocal = new ArrayList(); + ArrayList completedlocal = new ArrayList(); + ArrayList rawLevelNameslocal = new ArrayList(); + ArrayList attemptsLocal = new ArrayList(); + ArrayList lockedLocal = new ArrayList(); - try (Connection conn = DriverManager.getConnection(url); - Statement stmt = conn.createStatement()) { + try (Connection conn = DriverManager.getConnection(url); + Statement stmt = conn.createStatement()) { - // Erstelle eine neue Tabelle mit einem temporären Namen - String tempTableName = tablename + "_temp"; - createNewTable(tempTableName); + // Erstelle eine neue Tabelle mit einem temporären Namen + String tempTableName = tablename + "_temp"; + createNewTable(tempTableName); - // Holen Sie sich die maximale Platzierung in der Tabelle - int maxPlacement = 0; - String getMaxPlacementQuery = "SELECT MAX(placement) AS maxPlacement FROM " + tablename; - ResultSet maxPlacementResult = stmt.executeQuery(getMaxPlacementQuery); - if (maxPlacementResult.next()) { - maxPlacement = maxPlacementResult.getInt("maxPlacement"); - } + // Holen Sie sich die maximale Platzierung in der Tabelle + int maxPlacement = 0; + String getMaxPlacementQuery = "SELECT MAX(placement) AS maxPlacement FROM " + tablename; + ResultSet maxPlacementResult = stmt.executeQuery(getMaxPlacementQuery); + if (maxPlacementResult.next()) { + maxPlacement = maxPlacementResult.getInt("maxPlacement"); + } - // Durchlaufen Sie die Platzierungen und holen Sie die Daten entsprechend - for (int i = 1; i <= maxPlacement; i++) { - String sql = "SELECT * FROM " + tablename + " WHERE placement = " + i; - ResultSet rs = stmt.executeQuery(sql); - while (rs.next()) { - levelnamelocal.add(rs.getString("levelname")); - levelIDlocal.add(rs.getInt("levelID") + ""); - authorlocal.add(rs.getString("author")); - creatorslocal.add(rs.getString("creators")); - verifierlocal.add(rs.getString("verifier")); - verificationLinklocal.add(rs.getString("verificationLink")); - percenttoqualifylocal.add(rs.getInt("percentToQualify") + ""); - completedlocal.add(rs.getBoolean("completed") + ""); - recordslocal.add(rs.getString("records")); - rawLevelNameslocal.add(rs.getString("levelNameRaw")); - attemptsLocal.add(rs.getInt("attempts")); - } - } + // Durchlaufen Sie die Platzierungen und holen Sie die Daten entsprechend + for (int i = 1; i <= maxPlacement; i++) { + String sql = "SELECT * FROM " + tablename + " WHERE placement = " + i; + ResultSet rs = stmt.executeQuery(sql); + while (rs.next()) { + levelnamelocal.add(rs.getString("levelname")); + levelIDlocal.add(rs.getInt("levelID") + ""); + authorlocal.add(rs.getString("author")); + creatorslocal.add(rs.getString("creators")); + verifierlocal.add(rs.getString("verifier")); + verificationLinklocal.add(rs.getString("verificationLink")); + percenttoqualifylocal.add(rs.getInt("percentToQualify") + ""); + completedlocal.add(rs.getBoolean("completed") + ""); + recordslocal.add(rs.getString("records")); + rawLevelNameslocal.add(rs.getString("levelNameRaw")); + attemptsLocal.add(rs.getInt("attempts")); + lockedLocal.add(rs.getBoolean("locked")); + } + } - // Lösche die alte Tabelle - stmt.executeUpdate("DROP TABLE IF EXISTS " + tablename); + // Lösche die alte Tabelle + stmt.executeUpdate("DROP TABLE IF EXISTS " + tablename); - // Erstelle eine neue Tabelle mit dem ursprünglichen Namen - createNewTable(tablename); - - // Füge Daten in die neue Tabelle ein - String insert = "INSERT INTO " + tablename + " (placement, levelname, levelnameRaw, levelID, author, creators, verifier, verificationLink, percentToQualify, records, attempts, completed) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - try (PreparedStatement pstmt = conn.prepareStatement(insert)) { - for (int i = 0; i < levelnamelocal.size(); i++) { - pstmt.setInt(1, i + 1); - pstmt.setString(2, levelnamelocal.get(i)); - pstmt.setString(3, rawLevelNameslocal.get(data.allLevels().indexOf(rawLevelNameslocal.get(i)))); - pstmt.setInt(4, Integer.parseInt(levelIDlocal.get(i))); - pstmt.setString(5, authorlocal.get(i)); - pstmt.setString(6, creatorslocal.get(i)); - pstmt.setString(7, verifierlocal.get(i)); - pstmt.setString(8, verificationLinklocal.get(i)); - pstmt.setInt(9, Integer.parseInt(percenttoqualifylocal.get(i))); - pstmt.setString(10, recordslocal.get(i)); - pstmt.setInt(11, attemptsLocal.get(i)); - pstmt.setBoolean(12, false); - pstmt.executeUpdate(); - } - } - } catch (SQLException e) { - e.printStackTrace(); - } - } - - public void modifyData(String levelname, boolean completedStatus, int attempts) { - String sql = "UPDATE levels SET completed = ?, attempts = ? WHERE levelname = ?"; - - try (Connection conn = DriverManager.getConnection(url); - PreparedStatement pstmt = conn.prepareStatement(sql)) { - pstmt.setBoolean(1, completedStatus); - pstmt.setInt(2, attempts); - pstmt.setString(3, levelname); - - int rowsUpdated = pstmt.executeUpdate(); - if (rowsUpdated > 0) { - System.out.println("Data updated successfully."); - } else { - System.out.println("Data not found for levelname: " + levelname); - } - } catch (SQLException e) { - e.printStackTrace(); - } - } + // Erstelle eine neue Tabelle mit dem ursprünglichen Namen + createNewTable(tablename); + // Füge Daten in die neue Tabelle ein + String insert = "INSERT INTO " + tablename + " (placement, levelname, levelnameRaw, levelID, author, creators, verifier, verificationLink, percentToQualify, records, attempts, completed, locked) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + try (PreparedStatement pstmt = conn.prepareStatement(insert)) { + for (int i = 0; i < levelnamelocal.size(); i++) { + pstmt.setInt(1, i + 1); + pstmt.setString(2, levelnamelocal.get(i)); + pstmt.setString(3, rawLevelNameslocal.get(data.allLevels().indexOf(rawLevelNameslocal.get(i)))); + pstmt.setInt(4, Integer.parseInt(levelIDlocal.get(i))); + pstmt.setString(5, authorlocal.get(i)); + pstmt.setString(6, creatorslocal.get(i)); + pstmt.setString(7, verifierlocal.get(i)); + pstmt.setString(8, verificationLinklocal.get(i)); + pstmt.setInt(9, Integer.parseInt(percenttoqualifylocal.get(i))); + pstmt.setString(10, recordslocal.get(i)); + pstmt.setInt(11, attemptsLocal.get(i)); + pstmt.setBoolean(12, false); + pstmt.setBoolean(13, lockedLocal.get(i)); // Insert value of locked column + pstmt.executeUpdate(); + } + } + } catch (SQLException e) { + e.printStackTrace(); + } + } + public void modifyData(String levelname, boolean completedStatus, int attempts, boolean lock) { + String sql = "UPDATE levels SET completed = ?, attempts = ?, locked = ? WHERE levelname = ?"; + + try (Connection conn = DriverManager.getConnection(url); + PreparedStatement pstmt = conn.prepareStatement(sql)) { + pstmt.setBoolean(1, completedStatus); + pstmt.setInt(2, attempts); + pstmt.setBoolean(3, lock); // Korrigierte Reihenfolge + pstmt.setString(4, levelname); // Korrigierte Reihenfolge + + int rowsUpdated = pstmt.executeUpdate(); + if (rowsUpdated > 0) { + System.out.println("Data updated successfully."); + } else { + System.out.println("Data not found for levelname: " + levelname); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } } diff --git a/src/gui/MainGUI.java b/src/gui/MainGUI.java index 4d5ea3f..2d5e735 100644 --- a/src/gui/MainGUI.java +++ b/src/gui/MainGUI.java @@ -3,6 +3,7 @@ package gui; import java.awt.Button; import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; import java.awt.GridLayout; import java.awt.Insets; import java.awt.Toolkit; @@ -145,6 +146,7 @@ public class MainGUI { @Override public void run() { boolean[] comp = new boolean[data.getLevelname().size()]; + boolean[] lockbool = new boolean[data.getLevelname().size()]; for(int i = 0; i < data.getLevelname().size(); i++) { final int index = i; progress.setValue(i + 1); @@ -156,35 +158,63 @@ public class MainGUI { contents.setPreferredSize(new Dimension(600, 50)); contents.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY)); contents.setLayout(null); - + + JPanel lockind = new JPanel(); + lockind.setBounds(678, 0, 2, 50); + JButton completed = new JButton("x"); - completed.setBounds(610, 17, 17, 17); + completed.setBounds(610, 17, 18, 18); completed.setMargin(new Insets(0,0,0,0)); completed.setVisible(false); JButton uncompleted = new JButton("\u2713"); - uncompleted.setBounds(610, 17, 17, 17); + uncompleted.setBounds(610, 17, 18, 18); uncompleted.setMargin(new Insets(0,0,0,0)); uncompleted.setVisible(false); JTextField attempts = new JTextField("0"); - attempts.setBounds(535, 17, 70, 18); + attempts.setBounds(500, 17, 70, 18); attempts.setVisible(false); JButton confirm = new JButton("\uD83D\uDDAB"); - confirm.setBounds(640, 17, 17, 17); + confirm.setBounds(640, 17, 18, 18); confirm.setMargin(new Insets(0, 0, 0, 0)); JButton anpassen = new JButton("⚙"); - anpassen.setBounds(640, 17, 17, 17); + anpassen.setBounds(640, 17, 18, 18); anpassen.setMargin(new Insets(0, 0, 0, 0)); - + JButton sperren = new JButton("\uD83D\uDD12"); // Schlüssel-Symbol + sperren.setBounds(580, 17, 18, 18); + sperren.setMargin(new Insets(0, 0, 0, 0)); + sperren.setVisible(false); if(data.getAttempts().get(i) != null) { attempts.setText(data.getAttempts().get(i) + ""); } + if(data.getLocked().get(index)) { + lockbool[index] = true; + lockind.setBackground(Color.RED); + } + + sperren.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + + if(lockbool[index]) { + lockbool[index] = false; + lockind.setBackground(Color.WHITE); + } else { + lockbool[index] = true; + + lockind.setBackground(Color.RED); + } + + } + + }); completed.addActionListener(new ActionListener() { @@ -213,6 +243,7 @@ public class MainGUI { anpassen.setVisible(false); confirm.setVisible(true); attempts.setVisible(true); + sperren.setVisible(true); if(Boolean.parseBoolean(data.getCompleted().get(index))) { uncompleted.setVisible(true); completed.setVisible(false); @@ -229,8 +260,8 @@ public class MainGUI { @Override public void actionPerformed(ActionEvent e) { - if(!(comp[index] == Boolean.parseBoolean(data.getCompleted().get(index))) || !(attempts.getText().equals(data.getAttempts().get(index) + ""))) { - data.modifyData(data.getLevelname().get(index), comp[index], Integer.parseInt(attempts.getText())); + if(!(comp[index] == Boolean.parseBoolean(data.getCompleted().get(index))) || !(attempts.getText().equals(data.getAttempts().get(index) + "")) || !(data.getLocked().get(index) == lockbool[index])) { + data.modifyData(data.getLevelname().get(index), comp[index], Integer.parseInt(attempts.getText()), lockbool[index]); } @@ -246,6 +277,7 @@ public class MainGUI { uncompleted.setVisible(false); completed.setVisible(false); attempts.setVisible(false); + sperren.setVisible(false); } }); @@ -407,6 +439,8 @@ public class MainGUI { contents.add(anpassen); contents.add(confirm); contents.add(attempts); + contents.add(sperren); + contents.add(lockind); levelpanel.add(contents); } diff --git a/src/readsafefile/ReadAttemptsFromXML.java b/src/readsafefile/ReadAttemptsFromXML.java index 4c6928b..ad6c3e7 100644 --- a/src/readsafefile/ReadAttemptsFromXML.java +++ b/src/readsafefile/ReadAttemptsFromXML.java @@ -1,18 +1,13 @@ package readsafefile; import java.io.File; -import java.io.FileWriter; -import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; public class ReadAttemptsFromXML { @@ -41,7 +36,8 @@ public class ReadAttemptsFromXML { Element kElement = (Element) kList.item(i); // Prüfen, ob der Wert des Elements eine Level-ID ist - String currentLevelID = kElement.getTextContent(); + String currentLevelID = kElement.getTextContent(); + if (currentLevelID.equals(levelID)) { // Das übergeordnete Element finden Element dElement = (Element) kElement.getNextSibling(); diff --git a/src/readsafefile/SafeFileManager.java b/src/readsafefile/SafeFileManager.java index 307ef39..0d72707 100644 --- a/src/readsafefile/SafeFileManager.java +++ b/src/readsafefile/SafeFileManager.java @@ -46,7 +46,9 @@ public class SafeFileManager { attempts = read.getAttempts(database.getLevelID().get(i)); prog.update(database.getLevelname().get(i), Integer.parseInt(attempts), 1, i); - database.modifyData(database.getLevelname().get(i), Boolean.parseBoolean(database.getCompleted().get(i)), Integer.parseInt(attempts)); + if(!database.getLocked().get(i)) { + database.modifyData(database.getLevelname().get(i), Boolean.parseBoolean(database.getCompleted().get(i)), Integer.parseInt(attempts), database.getLocked().get(i)); + } } }