From 42ce8a7859352848bfc44f9ca93d8b2d73d60977 Mon Sep 17 00:00:00 2001 From: nadanehad Date: Mon, 6 May 2024 05:05:38 +0300 Subject: [PATCH 01/19] bug 16 is done --- .idea/.gitignore | 8 ++++++++ .idea/libraries/checkstyle_all_4_3.xml | 9 +++++++++ .idea/libraries/lib.xml | 18 ++++++++++++++++++ .idea/misc.xml | 6 ++++++ .idea/modules.xml | 9 +++++++++ .idea/vcs.xml | 6 ++++++ checkstyle_config/checkstyle_config.iml | 12 ++++++++++++ jMemorize.iml | 12 ++++++++++++ .../gui/swing/frames/EditCardFrame.java | 6 ++---- 9 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/libraries/checkstyle_all_4_3.xml create mode 100644 .idea/libraries/lib.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 checkstyle_config/checkstyle_config.iml create mode 100644 jMemorize.iml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/libraries/checkstyle_all_4_3.xml b/.idea/libraries/checkstyle_all_4_3.xml new file mode 100644 index 0000000..60dafeb --- /dev/null +++ b/.idea/libraries/checkstyle_all_4_3.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml new file mode 100644 index 0000000..f97f788 --- /dev/null +++ b/.idea/libraries/lib.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..6f29fee --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..9121378 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/checkstyle_config/checkstyle_config.iml b/checkstyle_config/checkstyle_config.iml new file mode 100644 index 0000000..e97b9cb --- /dev/null +++ b/checkstyle_config/checkstyle_config.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/jMemorize.iml b/jMemorize.iml new file mode 100644 index 0000000..fb8e866 --- /dev/null +++ b/jMemorize.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/jmemorize/gui/swing/frames/EditCardFrame.java b/src/jmemorize/gui/swing/frames/EditCardFrame.java index e2273f9..a28b965 100644 --- a/src/jmemorize/gui/swing/frames/EditCardFrame.java +++ b/src/jmemorize/gui/swing/frames/EditCardFrame.java @@ -437,11 +437,9 @@ private boolean isChanged() if (!ImageRepository.equals(m_cardPanel.getFrontImages(), frontSide.getImages())) return true; - - if (!ImageRepository.equals(m_cardPanel.getBackImages(), backSide.getImages())) - return true; - return false; + return ImageRepository.equals(m_cardPanel.getBackImages(), backSide.getImages()); + } private void updatePanel() From 9967fead05f81bd3dd7f685876b9fd51d1d07df6 Mon Sep 17 00:00:00 2001 From: kenzi khaled Date: Mon, 6 May 2024 05:23:23 +0300 Subject: [PATCH 02/19] adding search history feature --- src/jmemorize/core/SearchTool.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/jmemorize/core/SearchTool.java b/src/jmemorize/core/SearchTool.java index 39c8256..c920bec 100644 --- a/src/jmemorize/core/SearchTool.java +++ b/src/jmemorize/core/SearchTool.java @@ -30,7 +30,9 @@ public class SearchTool public final static int FRONT_SIDE = 0; public final static int FLIP_SIDE = 1; public final static int BOTH_SIDES = 2; - + private static List searchHistory = new ArrayList<>(); + + public static List search(String text, int side, boolean matchCase, List cards) { List foundCards = new LinkedList(); @@ -87,4 +89,12 @@ public static List search(String text, String searchtext, return positions; } + + public static void addToSearchHistory(String query) { + searchHistory.add(query); + } + + public static List getSearchHistory() { + return searchHistory; + } } From 03f7f25b2dc570bd4597b991f1e9a98c2dbba4d8 Mon Sep 17 00:00:00 2001 From: nadanehad Date: Mon, 6 May 2024 05:24:04 +0300 Subject: [PATCH 03/19] bug 17 is done --- src/jmemorize/gui/swing/panels/CardSidePanel.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/jmemorize/gui/swing/panels/CardSidePanel.java b/src/jmemorize/gui/swing/panels/CardSidePanel.java index fe9ae6e..266ed72 100644 --- a/src/jmemorize/gui/swing/panels/CardSidePanel.java +++ b/src/jmemorize/gui/swing/panels/CardSidePanel.java @@ -262,7 +262,6 @@ private enum Mode {TEXT, IMAGE, TEXT_AND_IMAGE}; private List m_imageObservers = new LinkedList(); private CardFont m_cardFont; - private JButton m_prevImageButton; private JButton m_nextImageButton; private JButton m_textModeButton; @@ -601,7 +600,7 @@ private void buildImageBar() m_imageLabel.setHorizontalAlignment(StyleConstants.ALIGN_LEFT); m_imageBar.add(m_imageLabel); - m_prevImageButton = new JButton(loadIcon("arrow_left.png")); //$NON-NLS-1$ + JButton m_prevImageButton = new JButton(loadIcon("arrow_left.png")); //$NON-NLS-1$ m_prevImageButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { From b5918ce598bfaf81d5ccc9358901c4d52e97d7bd Mon Sep 17 00:00:00 2001 From: kenzi khaled Date: Mon, 6 May 2024 05:34:11 +0300 Subject: [PATCH 04/19] adding search by category feature --- src/jmemorize/core/SearchTool.java | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/jmemorize/core/SearchTool.java b/src/jmemorize/core/SearchTool.java index c920bec..7d69efd 100644 --- a/src/jmemorize/core/SearchTool.java +++ b/src/jmemorize/core/SearchTool.java @@ -97,4 +97,34 @@ public static void addToSearchHistory(String query) { public static List getSearchHistory() { return searchHistory; } + + public static List searchWithinCategory(String text, int side, boolean matchCase, Category category) { + List foundCards = new LinkedList(); + List cards = category.getCards(); // Assuming Category class has a method to get cards + + for (Card card : cards) { + String frontSide = card.getFrontSide().getText().getUnformatted(); + String flipSide = card.getBackSide().getText().getUnformatted(); + + if (!matchCase) { + text = text.toLowerCase(); + frontSide = frontSide.toLowerCase(); + flipSide = flipSide.toLowerCase(); + } + + if (side == FRONT_SIDE || side == BOTH_SIDES) { + if (frontSide.indexOf(text) > -1) { + foundCards.add(card); + continue; + } + } + + if (side == FLIP_SIDE || side == BOTH_SIDES) { + if (flipSide.indexOf(text) > -1) { + foundCards.add(card); + } + } + } + return foundCards; + } } From b63114633daaba14c77e770aaf54f4d2011c3bdc Mon Sep 17 00:00:00 2001 From: nadanehad Date: Mon, 6 May 2024 05:41:16 +0300 Subject: [PATCH 05/19] bug number 18 is fixed --- .../gui/swing/panels/AxisConfiguration.java | 21 +++++++++++++++++++ .../gui/swing/panels/DeckChartPanel.java | 10 ++++----- 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 src/jmemorize/gui/swing/panels/AxisConfiguration.java diff --git a/src/jmemorize/gui/swing/panels/AxisConfiguration.java b/src/jmemorize/gui/swing/panels/AxisConfiguration.java new file mode 100644 index 0000000..8893981 --- /dev/null +++ b/src/jmemorize/gui/swing/panels/AxisConfiguration.java @@ -0,0 +1,21 @@ +package jmemorize.gui.swing.panels; +import org.jfree.chart.axis.CategoryAxis; +import org.jfree.chart.axis.ValueAxis; + +public class AxisConfiguration { + private final CategoryAxis domainAxis; + private final ValueAxis rangeAxis; + + public AxisConfiguration(CategoryAxis domainAxis, ValueAxis rangeAxis) { + this.domainAxis = domainAxis; + this.rangeAxis = rangeAxis; + } + + public CategoryAxis getDomainAxis() { + return domainAxis; + } + + public ValueAxis getRangeAxis() { + return rangeAxis; + } +} diff --git a/src/jmemorize/gui/swing/panels/DeckChartPanel.java b/src/jmemorize/gui/swing/panels/DeckChartPanel.java index 065c2c5..e1f954d 100644 --- a/src/jmemorize/gui/swing/panels/DeckChartPanel.java +++ b/src/jmemorize/gui/swing/panels/DeckChartPanel.java @@ -113,9 +113,9 @@ private class MyBarRenderer extends StackedBarRenderer3D m_boldFont = getBaseItemLabelFont().deriveFont(Font.BOLD); } - public void drawItem(Graphics2D g, CategoryItemRendererState state, - Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis, - ValueAxis rangeAxis, CategoryDataset data, int row, int column, int pass) + public void drawItem(Graphics2D g, CategoryItemRendererState state, + Rectangle2D dataArea, CategoryPlot plot, AxisConfiguration axisConfig, + CategoryDataset data, int row, int column, int pass) { if (column - 1 == m_deck && m_category.getCards(m_deck).size() > 0) { @@ -131,8 +131,8 @@ public void drawItem(Graphics2D g, CategoryItemRendererState state, } // domainAxis.setCategoryMargin(0.2 + (0.011 * getMinNumDecks())); - - super.drawItem(g, state, dataArea, plot, domainAxis, rangeAxis, + + super.drawItem(g, state, dataArea, plot, axisConfig.getDomainAxis(), axisConfig.getRangeAxis(), data, row, column, pass); } From bf79ea0dd0b239b0efe68ee346686e298d9bfcae Mon Sep 17 00:00:00 2001 From: nadanehad Date: Mon, 6 May 2024 05:47:22 +0300 Subject: [PATCH 06/19] bug number 19 is fixed --- src/jmemorize/gui/swing/panels/DeckChartPanel.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/jmemorize/gui/swing/panels/DeckChartPanel.java b/src/jmemorize/gui/swing/panels/DeckChartPanel.java index e1f954d..e731569 100644 --- a/src/jmemorize/gui/swing/panels/DeckChartPanel.java +++ b/src/jmemorize/gui/swing/panels/DeckChartPanel.java @@ -164,11 +164,9 @@ protected void drawStackVertical(List values, Comparable category, Object[] pair = (Object[]) it.next(); double thisValue = ((Double)pair[1]).doubleValue(); double delta = thisValue - lastValue; - - if( pair[0] != null) - { - if (delta == 0.0) - it.remove(); + + if (pair[0] != null && delta == 0.0) { + it.remove(); } lastValue = thisValue; From 16d20d9d4c29d319b2c587683a746e48bd55e75e Mon Sep 17 00:00:00 2001 From: nadanehad Date: Mon, 6 May 2024 05:57:44 +0300 Subject: [PATCH 07/19] bug number 20 is fixed --- src/jmemorize/gui/swing/panels/ThinkQuiz.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/jmemorize/gui/swing/panels/ThinkQuiz.java b/src/jmemorize/gui/swing/panels/ThinkQuiz.java index 736bde8..71ee4d0 100644 --- a/src/jmemorize/gui/swing/panels/ThinkQuiz.java +++ b/src/jmemorize/gui/swing/panels/ThinkQuiz.java @@ -33,28 +33,22 @@ public class ThinkQuiz implements Quiz { private CardSidePanel m_answerPanel = new CardSidePanel(); - - private CardSide m_answerCardSide; - public ThinkQuiz() - { + + public ThinkQuiz() { m_answerPanel.setEditable(false); } - /* (non-Javadoc) - * @see jmemorize.gui.swing.Quiz - */ - public void showQuestion(CardSide answerCardSide) - { - m_answerCardSide = answerCardSide; - + public void showQuestion(CardSide answerCardSide) { + CardSide m_answerCardSide = answerCardSide; // Declaring m_answerCardSide as a local variable m_answerPanel.setText(m_answerCardSide.getText()); - + ImageRepository repo = ImageRepository.getInstance(); List images = repo.toImageIcons(m_answerCardSide.getImages()); m_answerPanel.setImages(images); } + /* (non-Javadoc) * @see jmemorize.gui.swing.Quiz */ From 95edf07057a46fffe20d1f8a2f4bf110d3ec78cf Mon Sep 17 00:00:00 2001 From: Albert Maged Date: Mon, 6 May 2024 06:02:45 +0300 Subject: [PATCH 08/19] Feature 4 Done --- src/jmemorize/core/Card.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/jmemorize/core/Card.java b/src/jmemorize/core/Card.java index d6cf17e..8eb8b87 100644 --- a/src/jmemorize/core/Card.java +++ b/src/jmemorize/core/Card.java @@ -20,6 +20,7 @@ import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; import jmemorize.core.CardSide.CardSideObserver; @@ -196,7 +197,16 @@ public void resetLearnedAmount() setLearnedAmount(true, 0); setLearnedAmount(false, 0); } - + // New method to calculate the remaining days until card expiration + public long getDaysUntilExpiration() + { + if (m_dateExpired != null) + { + long diff = m_dateExpired.getTime() - Main.getNow().getTime(); + return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); + } + return -1; // Return -1 if the card does not have an expiration date set + } public CardSide getFrontSide() { return m_frontSide; From f2f845cdd80e50b61a836fda91955ea09d3d0dc7 Mon Sep 17 00:00:00 2001 From: Albert Maged Date: Mon, 6 May 2024 06:04:51 +0300 Subject: [PATCH 09/19] Feature 4 Done --- src/jmemorize/core/Card.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/jmemorize/core/Card.java b/src/jmemorize/core/Card.java index 8eb8b87..a102ed2 100644 --- a/src/jmemorize/core/Card.java +++ b/src/jmemorize/core/Card.java @@ -207,6 +207,7 @@ public long getDaysUntilExpiration() } return -1; // Return -1 if the card does not have an expiration date set } + public CardSide getFrontSide() { return m_frontSide; From 7d674cd3d85109cf00035db055be0556e372038a Mon Sep 17 00:00:00 2001 From: nadanehad Date: Mon, 6 May 2024 06:31:43 +0300 Subject: [PATCH 10/19] change in setDateExpired method --- src/jmemorize/core/Card.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/jmemorize/core/Card.java b/src/jmemorize/core/Card.java index d6cf17e..23981f4 100644 --- a/src/jmemorize/core/Card.java +++ b/src/jmemorize/core/Card.java @@ -233,11 +233,14 @@ public Date getDateExpired() /** * @param date can be null. */ - public void setDateExpired(Date date) // CHECK should this throw a event? - { + public void setDateExpired(Date date) throws IllegalArgumentException { + if (date.before(m_dateCreated)) { + throw new IllegalArgumentException("Expiration date cannot be before the creation date of the card."); + } m_dateExpired = cloneDate(date); } + /** * @return the creation date. Is never null. */ From 17439ac04906265af9df952debff2707aa227d15 Mon Sep 17 00:00:00 2001 From: kenzi khaled Date: Mon, 6 May 2024 06:31:58 +0300 Subject: [PATCH 11/19] adding Search Result Sorting Description feature --- src/jmemorize/core/SearchTool.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/jmemorize/core/SearchTool.java b/src/jmemorize/core/SearchTool.java index 7d69efd..77092fa 100644 --- a/src/jmemorize/core/SearchTool.java +++ b/src/jmemorize/core/SearchTool.java @@ -18,9 +18,7 @@ */ package jmemorize.core; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; +import java.util.*; /** * @author djemili @@ -127,4 +125,17 @@ public static List searchWithinCategory(String text, int side, boolean mat } return foundCards; } + + public static void sortByRelevance(List foundCards) { + // Sort by relevance criteria + Collections.sort(foundCards, new Comparator() { + @Override + public int compare(Card card1, Card card2) { + // Implement comparison logic based on relevance + // Return -1 if card1 is more relevant, 1 if card2 is more relevant, 0 if equal + return 0; // Placeholder, implement actual logic + } + }); + } + } From 85d4c629c31995041457d29fae07ce2c89ef73d0 Mon Sep 17 00:00:00 2001 From: nadanehad Date: Mon, 6 May 2024 06:38:30 +0300 Subject: [PATCH 12/19] Enhance the toString method in card class --- src/jmemorize/core/Card.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/jmemorize/core/Card.java b/src/jmemorize/core/Card.java index 944c74d..f0d964e 100644 --- a/src/jmemorize/core/Card.java +++ b/src/jmemorize/core/Card.java @@ -455,9 +455,12 @@ public Card cloneWithoutProgress() /** * @see java.lang.Object#toString() */ - public String toString() - { - return "("+m_frontSide+"/"+m_backSide+")"; + public String toString() { + if (m_dateExpired != null) { + return "(" + m_frontSide + "/" + m_backSide + " - Expires: " + m_dateExpired + ")"; + } else { + return "(" + m_frontSide + "/" + m_backSide + ")"; + } } private void attachCardSideObservers() From 2ad95ef0f0b8b8823bee295533a0f0701bca3651 Mon Sep 17 00:00:00 2001 From: Albert Maged Date: Mon, 6 May 2024 06:42:18 +0300 Subject: [PATCH 13/19] bug 12 Done --- src/jmemorize/core/Card.java | 13 +--- .../actions/file/AbstractExportAction.java | 69 +++++++++---------- 2 files changed, 34 insertions(+), 48 deletions(-) diff --git a/src/jmemorize/core/Card.java b/src/jmemorize/core/Card.java index a102ed2..d6cf17e 100644 --- a/src/jmemorize/core/Card.java +++ b/src/jmemorize/core/Card.java @@ -20,7 +20,6 @@ import java.util.Date; import java.util.List; -import java.util.concurrent.TimeUnit; import jmemorize.core.CardSide.CardSideObserver; @@ -197,17 +196,7 @@ public void resetLearnedAmount() setLearnedAmount(true, 0); setLearnedAmount(false, 0); } - // New method to calculate the remaining days until card expiration - public long getDaysUntilExpiration() - { - if (m_dateExpired != null) - { - long diff = m_dateExpired.getTime() - Main.getNow().getTime(); - return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); - } - return -1; // Return -1 if the card does not have an expiration date set - } - + public CardSide getFrontSide() { return m_frontSide; diff --git a/src/jmemorize/gui/swing/actions/file/AbstractExportAction.java b/src/jmemorize/gui/swing/actions/file/AbstractExportAction.java index 3063332..01fb207 100644 --- a/src/jmemorize/gui/swing/actions/file/AbstractExportAction.java +++ b/src/jmemorize/gui/swing/actions/file/AbstractExportAction.java @@ -1,7 +1,7 @@ /* * jMemorize - Learning made easy (and fun) - A Leitner flashcards tool * Copyright(C) 2004-2008 Riad Djemili and contributors - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 1, or (at your option) @@ -41,81 +41,78 @@ public abstract class AbstractExportAction extends AbstractSessionDisabledAction /** * Displays a Save As or Export dialog, and to confirm overwrites, * and to attach specified file extension. - * + * * @return the file path or null if the dialog was cancelled. - * + * * @author Perry (elsapo) * @author djemili */ - public static File showSaveDialog(JFrame frame, ExtensionFileFilter fileFilter) - { + public static File showSaveDialog(JFrame frame, ExtensionFileFilter fileFilter) { JFileChooser chooser = new JFileChooser(); - - try - { + + try { chooser.setCurrentDirectory(Settings.loadLastDirectory()); - } - catch (Exception ioe) - { + } catch (Exception ioe) { Main.logThrowable("Could not load last directory", ioe); chooser.setCurrentDirectory(null); - } - + } + chooser.setFileFilter(fileFilter); - + File file = null; + boolean confirmed = false; // Loop so we can prompt again if they choose not to overwrite - while (true) - { + while (!confirmed) { // Do the actual Save As prompt int choice = chooser.showSaveDialog(frame); if (choice != JFileChooser.APPROVE_OPTION) - return null; + break; - File file = chooser.getSelectedFile(); + file = chooser.getSelectedFile(); // Attach desired extension, if supplied String extension = fileFilter.getExtension(); - if (extension.length() > 0 && !file.getName().endsWith(extension)) - { + if (extension.length() > 0 && !file.getName().endsWith(extension)) { file = new File(file.getAbsolutePath() + '.' + extension); chooser.setSelectedFile(file); } - - if (file.exists()) - { + + if (file.exists()) { // Prompt to confirm they actually want to overwrite existing file String text = Localization.get("MainFrame.CONFIRM_OVERWRITE"); String title = Localization.get("MainFrame.CONFIRM_OVERWRITE_TITLE"); - - int act = JOptionPane.showConfirmDialog(frame, - text + " " + file.toString(), - title, - JOptionPane.YES_NO_OPTION); - + + int act = JOptionPane.showConfirmDialog(frame, + text + " " + file.toString(), + title, + JOptionPane.YES_NO_OPTION); + if (act == JOptionPane.NO_OPTION) continue; } - + confirmed = true; + } + + if (confirmed) { Settings.storeLastDirectory(file); return file; + } else { + return null; } } - - /* (non-Javadoc) * @see java.awt.event.ActionListener */ public void actionPerformed(ActionEvent event) { Main main = Main.getInstance(); - - File file = null; + + File file = null; try { file = showSaveDialog(main.getFrame(), getFileFilter()); if (file != null) doExport(main.getLesson(), file); - + } catch (IOException e) { @@ -128,7 +125,7 @@ public void actionPerformed(ActionEvent event) new ErrorDialog(main.getFrame(), msg, e).setVisible(true); } } - + abstract protected void doExport(Lesson lesson, File file) throws IOException; abstract protected ExtensionFileFilter getFileFilter(); } From 4ce7b62506c448a732f4e9c93ab58aa721ee89c8 Mon Sep 17 00:00:00 2001 From: kenzi khaled Date: Mon, 6 May 2024 06:59:15 +0300 Subject: [PATCH 14/19] bug 1 is fixed --- .../src/jmemorize/checks/ExceptionLoggedCheck.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/checkstyle_config/src/jmemorize/checks/ExceptionLoggedCheck.java b/checkstyle_config/src/jmemorize/checks/ExceptionLoggedCheck.java index 0958386..7f1e545 100644 --- a/checkstyle_config/src/jmemorize/checks/ExceptionLoggedCheck.java +++ b/checkstyle_config/src/jmemorize/checks/ExceptionLoggedCheck.java @@ -83,7 +83,7 @@ public void visitToken(DetailAST ast) } else if (ast.getType() == TokenTypes.LITERAL_ASSERT && catchDepth == 1) { DetailAST childAst = ast.findFirstToken(TokenTypes.EXPR); - if (childAst != null || childAst.getNumberOfChildren() == 1) { + if (childAst != null && childAst.getNumberOfChildren() == 1) { DetailAST grandchildAst = childAst.findFirstToken(TokenTypes.LITERAL_FALSE); if (grandchildAst != null) { hasAssert = true; From 434d0d7310ab8690512a51cf8feaefa520497789 Mon Sep 17 00:00:00 2001 From: kenzi khaled Date: Mon, 6 May 2024 07:08:53 +0300 Subject: [PATCH 15/19] bug 2 is fixed --- src/jmemorize/core/Card.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/jmemorize/core/Card.java b/src/jmemorize/core/Card.java index ee41faf..46c252f 100644 --- a/src/jmemorize/core/Card.java +++ b/src/jmemorize/core/Card.java @@ -20,6 +20,7 @@ import java.util.Date; import java.util.List; +import java.util.Objects; import jmemorize.core.CardSide.CardSideObserver; @@ -251,10 +252,7 @@ public Date getDateCreated() public void setDateCreated(Date date) { - if (date == null) - throw new NullPointerException(); - - m_dateCreated = cloneDate(date); + m_dateCreated = Objects.requireNonNull(date, "Date cannot be null"); } /** From dc74347651a799cf73fec675e85db006470e77fb Mon Sep 17 00:00:00 2001 From: Albert Maged Date: Mon, 6 May 2024 07:15:05 +0300 Subject: [PATCH 16/19] Bug 15 Completed --- src/jmemorize/gui/swing/dialogs/ErrorDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jmemorize/gui/swing/dialogs/ErrorDialog.java b/src/jmemorize/gui/swing/dialogs/ErrorDialog.java index 12a25c1..9c8cc2f 100644 --- a/src/jmemorize/gui/swing/dialogs/ErrorDialog.java +++ b/src/jmemorize/gui/swing/dialogs/ErrorDialog.java @@ -169,7 +169,7 @@ private JPanel buildMainPanel() private JPanel buildButtonBar() { // buttons - m_okayButton = new JButton(Localization.get(LC.OKAY)); + JButton okayButton = new JButton(Localization.get(LC.OKAY)); m_okayButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { From 67b09288587fc5a2b1f27f1bb76683c2d8e989a7 Mon Sep 17 00:00:00 2001 From: kenzi khaled Date: Mon, 6 May 2024 07:21:35 +0300 Subject: [PATCH 17/19] bug 3 is fixed --- src/jmemorize/core/Main.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/jmemorize/core/Main.java b/src/jmemorize/core/Main.java index 2c6f185..23016d1 100644 --- a/src/jmemorize/core/Main.java +++ b/src/jmemorize/core/Main.java @@ -27,11 +27,7 @@ import java.io.StringWriter; import java.net.URL; import java.nio.channels.FileChannel; -import java.util.Date; -import java.util.LinkedList; -import java.util.List; -import java.util.Observable; -import java.util.Properties; +import java.util.*; import java.util.logging.FileHandler; import java.util.logging.Handler; import java.util.logging.Level; @@ -445,7 +441,7 @@ public static Logger getLogger() // we have more information about the exception there. public static void logThrowable(String msg, Throwable t) { - if (t != null && m_lastLoggedThrowable != t) + if (t != null && !Objects.equals(m_lastLoggedThrowable, t)) { m_lastLoggedThrowable = t; logger.severe(msg); From 9e1bc0994d935a794a52815938fccd919e85b6f2 Mon Sep 17 00:00:00 2001 From: Albert Maged Date: Mon, 6 May 2024 07:27:11 +0300 Subject: [PATCH 18/19] Bug 13 Done --- src/jmemorize/gui/swing/dialogs/ErrorDialog.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jmemorize/gui/swing/dialogs/ErrorDialog.java b/src/jmemorize/gui/swing/dialogs/ErrorDialog.java index 9c8cc2f..5cadff5 100644 --- a/src/jmemorize/gui/swing/dialogs/ErrorDialog.java +++ b/src/jmemorize/gui/swing/dialogs/ErrorDialog.java @@ -184,8 +184,8 @@ public void actionPerformed(ActionEvent evt) extendDialog(); } }); - - m_copyButton = new JButton("Copy to clipboard"); + + JButton copyButton = new JButton("Copy to clipboard"); m_copyButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { From ae4be07b04f4babb4a31b7e15b6cbd852ec172b0 Mon Sep 17 00:00:00 2001 From: Albert Maged Date: Mon, 6 May 2024 07:35:09 +0300 Subject: [PATCH 19/19] Bug 13 Done --- src/jmemorize/gui/swing/dialogs/ErrorDialog.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jmemorize/gui/swing/dialogs/ErrorDialog.java b/src/jmemorize/gui/swing/dialogs/ErrorDialog.java index 5cadff5..1b1053a 100644 --- a/src/jmemorize/gui/swing/dialogs/ErrorDialog.java +++ b/src/jmemorize/gui/swing/dialogs/ErrorDialog.java @@ -181,11 +181,12 @@ public void actionPerformed(ActionEvent evt) m_moreButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { + extendDialog(); } }); - JButton copyButton = new JButton("Copy to clipboard"); + JButton copyButton = new JButton("Copy to clipboard"); m_copyButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) {