diff --git a/ProjectAirFighter/src/main/java/com/projectairfighter/FormWarPlaneCollection.java b/ProjectAirFighter/src/main/java/com/projectairfighter/FormWarPlaneCollection.java index 49072a7..999a0bd 100644 --- a/ProjectAirFighter/src/main/java/com/projectairfighter/FormWarPlaneCollection.java +++ b/ProjectAirFighter/src/main/java/com/projectairfighter/FormWarPlaneCollection.java @@ -285,7 +285,7 @@ public class FormWarPlaneCollection extends Application implements Initializable File selectedFile = fileChooser.showSaveDialog(null); if (selectedFile != null) { try { - storageCollection.saveData(selectedFile.getAbsolutePath(), listViewCollection.getSelectionModel().getSelectedItem()); + storageCollection.saveData(selectedFile.getAbsolutePath(), storageCollection.keys().get(listViewCollection.getSelectionModel().getSelectedIndex()).collectionType()); showAlert("Сохранение прошло успешно", "Результат", Alert.AlertType.INFORMATION); userLogger.info("Сохранение в файл: {}", selectedFile.getName()); } catch (Exception ex) { diff --git a/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/AbstractCompany.java b/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/AbstractCompany.java index 94b9683..087b860 100644 --- a/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/AbstractCompany.java +++ b/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/AbstractCompany.java @@ -35,6 +35,7 @@ public abstract class AbstractCompany { if (collection == null) { return -1; } + return collection.insert(plane, new DrawningPlaneEquatables()); } diff --git a/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/StorageCollection.java b/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/StorageCollection.java index 8486409..c469233 100644 --- a/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/StorageCollection.java +++ b/ProjectAirFighter/src/main/java/com/projectairfighter/collectiongenericobjects/StorageCollection.java @@ -159,8 +159,6 @@ public class StorageCollection { StringBuilder sb = new StringBuilder(); sb.append(entry.getKey()); sb.append(SEPARATOR_FOR_KEY_VALUE_ALL_COL); - sb.append(entry.getValue().getCollectionType()); - sb.append(SEPARATOR_FOR_KEY_VALUE_ALL_COL); sb.append(entry.getValue().getMaxCount()); sb.append(SEPARATOR_FOR_KEY_VALUE_ALL_COL); @@ -186,9 +184,9 @@ public class StorageCollection { * Сохранение в файл по имени коллекции * * @param path путь к файлу - * @param collection название коллекции для сохранения + * @param collectionType название коллекции для сохранения */ - public void saveData(String path, String collection) throws IOException { + public void saveData(String path, CollectionType collectionType) throws IOException { if (storages.isEmpty()) { throw new IllegalArgumentException("В хранилище отсутствуют коллекции для сохранения"); } @@ -203,7 +201,7 @@ public class StorageCollection { writer.newLine(); for (Map.Entry> entry : storages.entrySet()) { - if ((entry.getValue().getCount() == 0) || !entry.getKey().equals(collection)) { + if ((entry.getValue().getCount() == 0) || entry.getKey().name().equals(collectionType.name())) { continue; } diff --git a/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByColor.java b/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByColor.java index 266c696..eb5b40f 100644 --- a/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByColor.java +++ b/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByColor.java @@ -2,9 +2,6 @@ package com.projectairfighter.drawnings; import java.util.Comparator; -/** - * Comparison by color, speed, weight. - */ public class DrawningPlaneCompareByColor implements Comparator { @Override @@ -17,20 +14,17 @@ public class DrawningPlaneCompareByColor implements Comparator return -1; } - // Compare by body color name int bodyColorCompare = y.entityWarPlane.getBodyColor().toString().compareTo(x.entityWarPlane.getBodyColor().toString()); if (bodyColorCompare != 0) { return bodyColorCompare; } - // Compare by speed int speedCompare = Integer.compare(y.entityWarPlane.getSpeed(), x.entityWarPlane.getSpeed()); if (speedCompare != 0) { return speedCompare; } - // Compare by weight return Integer.compare((int) y.entityWarPlane.getWeight(), (int) x.entityWarPlane.getWeight()); } } diff --git a/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByType.java b/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByType.java index f4564b2..6f7d282 100644 --- a/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByType.java +++ b/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneCompareByType.java @@ -2,9 +2,6 @@ package com.projectairfighter.drawnings; import java.util.Comparator; -/** - * Comparison by type, speed, weight. - */ public class DrawningPlaneCompareByType implements Comparator { @Override @@ -17,18 +14,43 @@ public class DrawningPlaneCompareByType implements Comparator return -1; } - // Compare by type name if (!x.getClass().getName().equals(y.getClass().getName())) { return y.getClass().getName().compareTo(x.getClass().getName()); } - // Compare by speed int speedCompare = Integer.compare(y.entityWarPlane.getSpeed(), x.entityWarPlane.getSpeed()); if (speedCompare != 0) { return speedCompare; } - // Compare by weight - return Integer.compare((int) y.entityWarPlane.getWeight(), (int) x.entityWarPlane.getWeight()); + int weightCompare = Integer.compare((int) y.entityWarPlane.getWeight(), (int) x.entityWarPlane.getWeight()); + if (weightCompare != 0) { + return weightCompare; + } + + int engineCountCompare = Integer.compare(getEngineCount(y), getEngineCount(x)); + if (engineCountCompare != 0) { + return engineCountCompare; + } + + return getEngineType(x).compareTo(getEngineType(y)); + } + + private int getEngineCount(DrawningWarPlane plane) { + if (plane instanceof IDrawableExtras) { + return ((IDrawableExtras) plane).getCountEngines(); + } + return 0; + } + + private String getEngineType(DrawningWarPlane plane) { + if (plane.entityWarPlane.getEngineDrawing() instanceof RectangleEngineDrawing) { + return "Rectangle"; + } else if (plane.entityWarPlane.getEngineDrawing() instanceof TriangleEngineDrawing) { + return "Triangle"; + } else if (plane.entityWarPlane.getEngineDrawing() instanceof EllipticalEngineDrawing) { + return "Elliptical"; + } + return "Unknown"; } } diff --git a/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneEquatables.java b/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneEquatables.java index c502086..493d14b 100644 --- a/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneEquatables.java +++ b/ProjectAirFighter/src/main/java/com/projectairfighter/drawnings/DrawningPlaneEquatables.java @@ -4,9 +4,7 @@ import com.projectairfighter.entities.EntityAirFighter; import java.util.Comparator; -/** - * Implementation of the comparison of two drawing class objects. - */ + public class DrawningPlaneEquatables implements Comparator { @Override public int compare(DrawningWarPlane x, DrawningWarPlane y) { @@ -21,7 +19,7 @@ public class DrawningPlaneEquatables implements Comparator { if (x.entityWarPlane.getBodyColor() != y.entityWarPlane.getBodyColor()) return 0; if ((x.entityWarPlane.getEngineDrawing().getCountEngines() != y.entityWarPlane.getEngineDrawing().getCountEngines() - && !x.entityWarPlane.getEngineDrawing().getClass().getSimpleName().equals(y.entityWarPlane.getEngineDrawing().getClass().getSimpleName()))) + || !x.entityWarPlane.getEngineDrawing().getClass().getSimpleName().equals(y.entityWarPlane.getEngineDrawing().getClass().getSimpleName()))) return 0; diff --git a/ProjectAirFighter/src/main/resources/log4j2.xml b/ProjectAirFighter/src/main/resources/log4j2.xml index 5d1564a..65fd70a 100644 --- a/ProjectAirFighter/src/main/resources/log4j2.xml +++ b/ProjectAirFighter/src/main/resources/log4j2.xml @@ -1,14 +1,14 @@ - + %d{dd.MM.yyyy} - %msg%n - + %d{dd.MM.yyyy} [%level] - %msg%n @@ -17,17 +17,17 @@ - + - + - + diff --git a/ProjectAirFighter/src/main/resources/logback.xml b/ProjectAirFighter/src/main/resources/logback.xml deleted file mode 100644 index 9ab376a..0000000 --- a/ProjectAirFighter/src/main/resources/logback.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - logs/actions.log - - logs/actions_%d{yyyy-MM-dd}.log - 30 - - - %date{dd.MM.yyyy HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n - - - - - logs/errors.log - - logs/errors_%d{yyyy-MM-dd}.log - 30 - - - %date{dd.MM.yyyy HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n - - - - - - - - - - - - - - - - - - -