Лабораторная работа 7
This commit is contained in:
parent
f4373424ba
commit
3000cc1889
29
Tank/Errors.log
Normal file
29
Tank/Errors.log
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[ERROR]
|
||||||
|
Ошибка при загрузке всех объектов из файла: Объект не найден (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[ERROR]
|
||||||
|
Ошибка при загрузке всех объектов из файла: Объект не найден (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[ERROR]
|
||||||
|
Ошибка при загрузке всех объектов из файла: Объект не найден (05.12.2023)
|
||||||
|
[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции1 (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции1 (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции1 (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции1411 (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции1411 (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции0 (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
|
||||||
|
[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
|
||||||
|
[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
|
||||||
|
[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
|
||||||
|
[ERROR] Error saving all maps to file: Файл не найден (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции14 (05.12.2023)
|
||||||
|
[WARN ] Коллекция переполнена: В наборе превышено допустимое количество: 15 (05.12.2023)
|
||||||
|
[WARN ] Не удалось удалить объект с позиции14 (05.12.2023)
|
79
Tank/Infos.log
Normal file
79
Tank/Infos.log
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 0удалён (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект из набора (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект из набора (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект из набора (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект из набора (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 12 (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 0удалён (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: C:\Users\Никита\Java\2 курс\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 14удалён (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 100 (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: E:\RPP\java\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 14удалён (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 14 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: E:\RPP\java\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 14удалён (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 14 (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: E:\RPP\java\Lab7\file.txt (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 0 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 11 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 1 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 21 (05.12.2023)
|
||||||
|
[INFO ] Не удалось удалить объект с позиции 11 (05.12.2023)
|
||||||
|
[INFO ] Набор добавлен: 1 (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Набор добавлен: 12 (05.12.2023)
|
||||||
|
[INFO ] Набор добавлен: 1 (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Добавлен новый объект (05.12.2023)
|
||||||
|
[INFO ] Сохранение всех объектов в файл: E:\file.txt (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: E:\file.txt (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 1удалён (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: E:\file.txt (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 14удалён (05.12.2023)
|
||||||
|
[INFO ] Загрузка всех объектов из файла: E:\file.txt (05.12.2023)
|
||||||
|
[INFO ] Объект с позиции 14удалён (05.12.2023)
|
@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
@ -14,10 +14,11 @@ import javax.swing.filechooser.FileNameExtensionFilter;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
public class FormTankCollection {
|
public class FormTankCollection {
|
||||||
private class Canvas extends JComponent {
|
private class Canvas extends JComponent {
|
||||||
public Canvas() {
|
public Canvas() { }
|
||||||
}
|
|
||||||
|
|
||||||
public void paintComponent(Graphics g) {
|
public void paintComponent(Graphics g) {
|
||||||
super.paintComponent(g);
|
super.paintComponent(g);
|
||||||
@ -61,7 +62,13 @@ public class FormTankCollection {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FormTankCollection() {
|
// Логгер
|
||||||
|
private Logger logger;
|
||||||
|
|
||||||
|
FormTankCollection(Logger logger) {
|
||||||
|
System.setProperty("log4j.configutationFile", "src//log4j2.xml");
|
||||||
|
this.logger = logger;
|
||||||
|
|
||||||
listModel = new DefaultListModel<String>();
|
listModel = new DefaultListModel<String>();
|
||||||
jListStorage = new JList<String>(listModel);
|
jListStorage = new JList<String>(listModel);
|
||||||
canv = new Canvas();
|
canv = new Canvas();
|
||||||
@ -73,6 +80,7 @@ public class FormTankCollection {
|
|||||||
new ActionListener() {
|
new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (jListStorage.getSelectedIndex() == -1) {
|
if (jListStorage.getSelectedIndex() == -1) {
|
||||||
|
logger.warn("Добавление объекта в несуществующий набор");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var obj = _storage.get(jListStorage.getSelectedValue());
|
var obj = _storage.get(jListStorage.getSelectedValue());
|
||||||
@ -84,11 +92,20 @@ public class FormTankCollection {
|
|||||||
form.buttonAdd.addActionListener(
|
form.buttonAdd.addActionListener(
|
||||||
new ActionListener() {
|
new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (obj != null && obj.Add(form._vehicle) != -1) {
|
try {
|
||||||
JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
if (obj != null && obj.Add(form._vehicle) != -1) {
|
||||||
Draw();
|
logger.info("Добавлен новый объект");
|
||||||
} else {
|
JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
Draw();
|
||||||
|
}
|
||||||
|
} catch (TankStorageOverflowException ex) {
|
||||||
|
logger.warn("Коллекция переполнена: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, ex.getMessage());
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
|
||||||
|
} catch (Exception ex){
|
||||||
|
logger.fatal("Неизвестная ошибка: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка. Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
form.Frame.dispose();
|
form.Frame.dispose();
|
||||||
}
|
}
|
||||||
@ -106,6 +123,7 @@ public class FormTankCollection {
|
|||||||
new ActionListener() {
|
new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (jListStorage.getSelectedIndex() == -1) {
|
if (jListStorage.getSelectedIndex() == -1) {
|
||||||
|
logger.warn("Удаление объекта из несуществующего набора");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var obj = _storage.get(jListStorage.getSelectedValue());
|
var obj = _storage.get(jListStorage.getSelectedValue());
|
||||||
@ -127,13 +145,25 @@ public class FormTankCollection {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int pos = Integer.parseInt(TextBoxNumber.getText());
|
int pos = Integer.parseInt(TextBoxNumber.getText());
|
||||||
var removed = obj.remove(pos);
|
try {
|
||||||
if (removed != null) {
|
var removed = obj.remove(pos);
|
||||||
Queue.add(removed);
|
if (removed != null) {
|
||||||
JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||||
Draw();
|
Queue.add(removed);
|
||||||
} else {
|
Draw();
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
logger.info("Объект с позиции " + pos + "удалён");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
logger.info("Не удалось удалить объект с позиции " + pos);
|
||||||
|
}
|
||||||
|
} catch (TankNotFoundException ex) {
|
||||||
|
logger.warn("Не удалось удалить объект с позиции"+ pos);
|
||||||
|
JOptionPane.showMessageDialog(null, ex.getMessage());
|
||||||
|
} catch (Exception ex) {
|
||||||
|
logger.fatal("Неизвестная ошибка: " +ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -180,10 +210,12 @@ public class FormTankCollection {
|
|||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (textBoxSetName.getText().length() == 0) {
|
if (textBoxSetName.getText().length() == 0) {
|
||||||
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
logger.warn("Не все данные заполнены");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_storage.AddSet(textBoxSetName.getText());
|
_storage.AddSet(textBoxSetName.getText());
|
||||||
ReloadObjects();
|
ReloadObjects();
|
||||||
|
logger.info("Набор добавлен: "+textBoxSetName.getText());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -201,12 +233,14 @@ public class FormTankCollection {
|
|||||||
new ActionListener() {
|
new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
if (jListStorage.getSelectedIndex() == -1) {
|
if (jListStorage.getSelectedIndex() == -1) {
|
||||||
|
logger.warn("Удаление несуществующего набора");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (JOptionPane.showConfirmDialog(null, "Удалить объект " + jListStorage.getSelectedValue() + "?", "Удаление", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
|
if (JOptionPane.showConfirmDialog(null, "Удалить объект " + jListStorage.getSelectedValue() + "?", "Удаление", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_storage.DelSet(jListStorage.getSelectedValue());
|
_storage.DelSet(jListStorage.getSelectedValue());
|
||||||
|
logger.info("Гараж "+jListStorage.getSelectedValue()+" Удалён");
|
||||||
ReloadObjects();
|
ReloadObjects();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -233,10 +267,15 @@ public class FormTankCollection {
|
|||||||
fileChooser.setDialogTitle("Выберите файл для загрузки данных");
|
fileChooser.setDialogTitle("Выберите файл для загрузки данных");
|
||||||
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
|
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fileChooser.getSelectedFile();
|
File selectedFile = fileChooser.getSelectedFile();
|
||||||
if (_storage.LoadData(selectedFile.getAbsolutePath())) {
|
|
||||||
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
try {
|
||||||
} else {
|
_storage.LoadData(fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE);
|
ReloadObjects();
|
||||||
|
logger.info("Загрузка всех объектов из файла: " + fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
|
JOptionPane.showMessageDialog(null, "Загрузка всех объектов прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
logger.error("\n" + "Ошибка при загрузке всех объектов из файла: " + ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null,"Ошибка при загрузке всех объектов" + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ReloadObjects();
|
ReloadObjects();
|
||||||
@ -256,10 +295,15 @@ public class FormTankCollection {
|
|||||||
|
|
||||||
if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
|
if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fileChooser.getSelectedFile();
|
File selectedFile = fileChooser.getSelectedFile();
|
||||||
if(_storage.SaveData(selectedFile.getAbsolutePath()))
|
|
||||||
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
try {
|
||||||
else
|
_storage.SaveData(fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат", JOptionPane.ERROR_MESSAGE);
|
logger.info("Сохранение всех объектов в файл: " + fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
|
JOptionPane.showMessageDialog(null,"Сохранение объектов прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
logger.error("Error saving all maps to file: " +ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка при сохранении объектов: "+ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -281,10 +325,14 @@ public class FormTankCollection {
|
|||||||
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
|
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fileChooser.getSelectedFile();
|
File selectedFile = fileChooser.getSelectedFile();
|
||||||
|
|
||||||
if (_storage.LoadDataSingle(selectedFile.getAbsolutePath())) {
|
try {
|
||||||
|
_storage.LoadDataSingle(fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
|
ReloadObjects();
|
||||||
|
logger.info("Загрузка всех объектов из файла: " + fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
||||||
} else {
|
} catch (Exception ex) {
|
||||||
JOptionPane.showMessageDialog(null, "Не загрузилось", "Результат", JOptionPane.ERROR_MESSAGE);
|
logger.error("\n" + "Ошибка при загрузке всех объектов из файла: " + ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Не загрузилось" + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ReloadObjects();
|
ReloadObjects();
|
||||||
@ -308,10 +356,15 @@ public class FormTankCollection {
|
|||||||
|
|
||||||
if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
|
if (fileChooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fileChooser.getSelectedFile();
|
File selectedFile = fileChooser.getSelectedFile();
|
||||||
if (_storage.SaveDataSingle(selectedFile.getAbsolutePath(), jListStorage.getSelectedValue()))
|
|
||||||
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
try {
|
||||||
else
|
_storage.SaveDataSingle(fileChooser.getSelectedFile().getAbsolutePath(), jListStorage.getSelectedValue());
|
||||||
JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат", JOptionPane.ERROR_MESSAGE);
|
logger.info("Сохранение всех объектов в файл: " + fileChooser.getSelectedFile().getAbsolutePath());
|
||||||
|
JOptionPane.showMessageDialog(null,"Сохранение прошло успешно", "Результат", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
logger.error("Error saving all maps to file: " +ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Не сохранилось: "+ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -231,12 +231,12 @@ public class FormTankConfig {
|
|||||||
labelAdditionalColor.setTransferHandler(
|
labelAdditionalColor.setTransferHandler(
|
||||||
new TransferHandler(){
|
new TransferHandler(){
|
||||||
@Override
|
@Override
|
||||||
public boolean canImport(TransferHandler.TransferSupport support) {
|
public boolean canImport(TransferSupport support) {
|
||||||
return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor);
|
return support.isDataFlavorSupported(ColorTransferable.colorDataFlavor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean importData(TransferHandler.TransferSupport support) {
|
public boolean importData(TransferSupport support) {
|
||||||
if (canImport(support)) {
|
if (canImport(support)) {
|
||||||
try {
|
try {
|
||||||
Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor);
|
Color color = (Color) support.getTransferable().getTransferData(ColorTransferable.colorDataFlavor);
|
||||||
@ -262,12 +262,12 @@ public class FormTankConfig {
|
|||||||
labelWheel.setTransferHandler(
|
labelWheel.setTransferHandler(
|
||||||
new TransferHandler(){
|
new TransferHandler(){
|
||||||
@Override
|
@Override
|
||||||
public boolean canImport(TransferHandler.TransferSupport support) {
|
public boolean canImport(TransferSupport support) {
|
||||||
return support.isDataFlavorSupported(WheelTransferable.wheelDrawingDataFlavor);
|
return support.isDataFlavorSupported(WheelTransferable.wheelDrawingDataFlavor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean importData(TransferHandler.TransferSupport support) {
|
public boolean importData(TransferSupport support) {
|
||||||
if (canImport(support)) {
|
if (canImport(support)) {
|
||||||
try {
|
try {
|
||||||
IOrnamentForm wheelDrawing = (IOrnamentForm) support.getTransferable().getTransferData(WheelTransferable.wheelDrawingDataFlavor);
|
IOrnamentForm wheelDrawing = (IOrnamentForm) support.getTransferable().getTransferData(WheelTransferable.wheelDrawingDataFlavor);
|
||||||
@ -289,12 +289,12 @@ public class FormTankConfig {
|
|||||||
canvas.setTransferHandler(
|
canvas.setTransferHandler(
|
||||||
new TransferHandler(){
|
new TransferHandler(){
|
||||||
@Override
|
@Override
|
||||||
public boolean canImport(TransferHandler.TransferSupport support) {
|
public boolean canImport(TransferSupport support) {
|
||||||
return support.isDataFlavorSupported(DataFlavor.stringFlavor);
|
return support.isDataFlavorSupported(DataFlavor.stringFlavor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean importData(TransferHandler.TransferSupport support) {
|
public boolean importData(TransferSupport support) {
|
||||||
if (canImport(support)) {
|
if (canImport(support)) {
|
||||||
try {
|
try {
|
||||||
String data = (String) support.getTransferable().getTransferData(DataFlavor.stringFlavor);
|
String data = (String) support.getTransferable().getTransferData(DataFlavor.stringFlavor);
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
import org.apache.logging.log4j.*;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new FormTankCollection();
|
new FormTankCollection(LogManager.getLogger(Main.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -17,18 +17,18 @@ public class SetGeneric <T extends Object> {
|
|||||||
// Добавление объектов в набор
|
// Добавление объектов в набор
|
||||||
public int Insert(T tank) {
|
public int Insert(T tank) {
|
||||||
if(_places.size() >= _maxCount)
|
if(_places.size() >= _maxCount)
|
||||||
return -1;
|
throw new TankStorageOverflowException(_maxCount);
|
||||||
_places.add(0,tank);
|
_places.add(0,tank);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean Insert(T tank, int position) {
|
public boolean Insert(T tank, int position) {
|
||||||
// Проверка позиции
|
// Проверка позиции
|
||||||
if (position < 0 || position > _places.size())
|
if (position < 0 || position >= _maxCount)
|
||||||
return false;
|
throw new TankNotFoundException(position);
|
||||||
|
|
||||||
if (_places.size() >= _maxCount)
|
if (_places.size() >= _maxCount)
|
||||||
return false;
|
throw new TankStorageOverflowException(_maxCount);
|
||||||
|
|
||||||
if (position == _places.size())
|
if (position == _places.size())
|
||||||
_places.add(tank);
|
_places.add(tank);
|
||||||
@ -41,8 +41,9 @@ public class SetGeneric <T extends Object> {
|
|||||||
// Удаление объекта из набора с конкретной позиции
|
// Удаление объекта из набора с конкретной позиции
|
||||||
public boolean Remove(int position) {
|
public boolean Remove(int position) {
|
||||||
// Проверка позиции
|
// Проверка позиции
|
||||||
if (position < 0 || position >= _places.size())
|
if (position < 0 || position >= Count() || position > _maxCount)
|
||||||
return false;
|
throw new TankNotFoundException(position);
|
||||||
|
|
||||||
_places.remove(position);
|
_places.remove(position);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
15
Tank/src/TankNotFoundException.java
Normal file
15
Tank/src/TankNotFoundException.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
public class TankNotFoundException extends RuntimeException {
|
||||||
|
public TankNotFoundException() { }
|
||||||
|
public TankNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
public TankNotFoundException(String message, Throwable exception) {
|
||||||
|
super(message, exception);
|
||||||
|
}
|
||||||
|
public TankNotFoundException(Throwable exception) {
|
||||||
|
super(exception);
|
||||||
|
}
|
||||||
|
protected TankNotFoundException(int pos) {
|
||||||
|
super("Не найден объект по позиции "+pos);
|
||||||
|
}
|
||||||
|
}
|
15
Tank/src/TankStorageOverflowException.java
Normal file
15
Tank/src/TankStorageOverflowException.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
public class TankStorageOverflowException extends RuntimeException{
|
||||||
|
public TankStorageOverflowException() { }
|
||||||
|
public TankStorageOverflowException(String message){
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
public TankStorageOverflowException(String message, Throwable exception){
|
||||||
|
super(message, exception);
|
||||||
|
}
|
||||||
|
protected TankStorageOverflowException(Throwable exception){
|
||||||
|
super(exception);
|
||||||
|
}
|
||||||
|
public TankStorageOverflowException(int count){
|
||||||
|
super("В наборе превышено допустимое количество: "+count);
|
||||||
|
}
|
||||||
|
}
|
@ -39,9 +39,8 @@ public class TanksGenericCollections<T extends DrawingArmoVehicle, U extends IMo
|
|||||||
// Перегрузка оператора вычитания
|
// Перегрузка оператора вычитания
|
||||||
public T remove(int pos) {
|
public T remove(int pos) {
|
||||||
T obj = _collection.Get(pos);
|
T obj = _collection.Get(pos);
|
||||||
if (obj != null) {
|
|
||||||
_collection.Remove(pos);
|
_collection.Remove(pos);
|
||||||
}
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
|
import com.sun.nio.sctp.InvalidStreamException;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.BufferedWriter;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileReader;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -23,7 +20,7 @@ public class TanksGenericStorage {
|
|||||||
private static String _separatorForObjectWR = ":";
|
private static String _separatorForObjectWR = ":";
|
||||||
private static String _separatorForObject = "\\:";
|
private static String _separatorForObject = "\\:";
|
||||||
|
|
||||||
public boolean SaveDataSingle(String filename, String key) {
|
public void SaveDataSingle(String filename, String key) throws IOException {
|
||||||
if(new File(filename).exists()) {
|
if(new File(filename).exists()) {
|
||||||
new File(filename).delete();
|
new File(filename).delete();
|
||||||
}
|
}
|
||||||
@ -32,40 +29,38 @@ public class TanksGenericStorage {
|
|||||||
data.append(key).append("\n");
|
data.append(key).append("\n");
|
||||||
for (DrawingArmoVehicle elem: _tankStorages.get(key).getTanks(100)) {
|
for (DrawingArmoVehicle elem: _tankStorages.get(key).getTanks(100)) {
|
||||||
if(_tankStorages.get(key) == null)
|
if(_tankStorages.get(key) == null)
|
||||||
return false;
|
throw new InvalidPropertiesFormatException("");
|
||||||
|
|
||||||
if(_tankStorages.get(key) != null)
|
if(_tankStorages.get(key) != null)
|
||||||
data.append(elem != null ? ExtentionDrawingTank.GetDataForSave(elem, _separatorForObjectWR) + "\n" : "");
|
data.append(elem != null ? ExtentionDrawingTank.GetDataForSave(elem, _separatorForObjectWR) + "\n" : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(data.length() == 0)
|
if(data.length() == 0)
|
||||||
return false;
|
throw new InvalidStreamException("File not found, нет данных для сохранения");
|
||||||
|
|
||||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) {
|
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) {
|
||||||
writer.write("TankStorageSingle" + System.lineSeparator() + data.toString());
|
writer.write("TankStorageSingle" + System.lineSeparator() + data.toString());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean LoadDataSingle(String filename) {
|
public void LoadDataSingle(String filename) throws IOException {
|
||||||
if(!new File(filename).exists()) {
|
if(!new File(filename).exists()) {
|
||||||
return false;
|
throw new FileNotFoundException("Файл не найден");
|
||||||
}
|
}
|
||||||
|
|
||||||
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
|
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
|
||||||
String s = reader.readLine();
|
String s = reader.readLine();
|
||||||
if(s == null || s.length() == 0)
|
if(s == null || s.length() == 0)
|
||||||
return false;
|
throw new NullPointerException("Нет данных для загрузки");
|
||||||
|
|
||||||
if(!s.startsWith("TankStorageSingle"))
|
if(!s.startsWith("TankStorageSingle"))
|
||||||
return false;
|
throw new IllegalArgumentException("Неверный формат данных"); //если нет такой записи, то это не те данные
|
||||||
|
|
||||||
String key = reader.readLine();
|
String key = reader.readLine();
|
||||||
if(key == null || key.length() == 0)
|
if(key == null || key.length() == 0)
|
||||||
return false;
|
throw new NullPointerException("Нет данных для загрузки");
|
||||||
|
|
||||||
TanksGenericCollections<DrawingArmoVehicle, DrawingObjectTank> collections = new TanksGenericCollections<>(_pictureWidth, _pictureHeight);
|
TanksGenericCollections<DrawingArmoVehicle, DrawingObjectTank> collections = new TanksGenericCollections<>(_pictureWidth, _pictureHeight);
|
||||||
if (_tankStorages.containsKey(key)){
|
if (_tankStorages.containsKey(key)){
|
||||||
@ -87,7 +82,7 @@ public class TanksGenericStorage {
|
|||||||
for (String elem : tanksStrings) {
|
for (String elem : tanksStrings) {
|
||||||
DrawingArmoVehicle vehicle = ExtentionDrawingTank.CreateDrawingTank(elem, _separatorForObject, _pictureWidth, _pictureHeight);
|
DrawingArmoVehicle vehicle = ExtentionDrawingTank.CreateDrawingTank(elem, _separatorForObject, _pictureWidth, _pictureHeight);
|
||||||
if(vehicle == null || collections.Add(vehicle) == -1)
|
if(vehicle == null || collections.Add(vehicle) == -1)
|
||||||
return false;
|
throw new NoSuchElementException("Объект не найден");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_tankStorages.containsKey(key))
|
if(_tankStorages.containsKey(key))
|
||||||
@ -95,13 +90,11 @@ public class TanksGenericStorage {
|
|||||||
_tankStorages.put(key, collections);
|
_tankStorages.put(key, collections);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Сохранение информации по технике в хранилище в файл
|
// Сохранение информации по технике в хранилище в файл
|
||||||
public boolean SaveData(String filename) {
|
public void SaveData(String filename) throws IOException {
|
||||||
if(new File(filename).exists()) {
|
if(new File(filename).exists()) {
|
||||||
new File(filename).delete();
|
new File(filename).delete();
|
||||||
}
|
}
|
||||||
@ -117,30 +110,28 @@ public class TanksGenericStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data.length() == 0)
|
if (data.length() == 0)
|
||||||
return false;
|
throw new InvalidStreamException("File not found, нет данных для сохранения");
|
||||||
|
|
||||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) {
|
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filename))) {
|
||||||
writer.write("TankStorage" + System.lineSeparator() + data.toString());
|
writer.write("TankStorage" + System.lineSeparator() + data.toString());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Загрузка информации по технике в хранилище из файла
|
// Загрузка информации по технике в хранилище из файла
|
||||||
public boolean LoadData(String filename) {
|
public void LoadData(String filename) throws IOException {
|
||||||
if (!new File(filename).exists()) {
|
if (!new File(filename).exists()) {
|
||||||
return false;
|
throw new FileNotFoundException("Файл не найден");
|
||||||
}
|
}
|
||||||
|
|
||||||
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
|
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
|
||||||
String s = reader.readLine();
|
String s = reader.readLine();
|
||||||
if (s == null || s.length() == 0)
|
if (s == null || s.length() == 0)
|
||||||
return false;
|
throw new NullPointerException("Нет данных для загрузки");
|
||||||
|
|
||||||
if (!s.startsWith("TankStorage"))
|
if (!s.startsWith("TankStorage"))
|
||||||
return false;
|
throw new IllegalArgumentException("Неверный формат данных"); //если нет такой записи, то это не те данные
|
||||||
|
|
||||||
_tankStorages.clear();
|
_tankStorages.clear();
|
||||||
|
|
||||||
@ -158,15 +149,13 @@ public class TanksGenericStorage {
|
|||||||
for (String elem : reversedSet) {
|
for (String elem : reversedSet) {
|
||||||
DrawingArmoVehicle vehicle = ExtentionDrawingTank.CreateDrawingTank(elem, _separatorForObject, _pictureWidth, _pictureHeight);
|
DrawingArmoVehicle vehicle = ExtentionDrawingTank.CreateDrawingTank(elem, _separatorForObject, _pictureWidth, _pictureHeight);
|
||||||
if (vehicle == null || collection.Add(vehicle) == -1)
|
if (vehicle == null || collection.Add(vehicle) == -1)
|
||||||
return false;
|
throw new NoSuchElementException("Объект не найден");
|
||||||
}
|
}
|
||||||
_tankStorages.put(record[0], collection);
|
_tankStorages.put(record[0], collection);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Словарь (как хранилище)
|
// Словарь (как хранилище)
|
||||||
|
27
Tank/src/log4j2.xml
Normal file
27
Tank/src/log4j2.xml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
|
<Configuration status="info">
|
||||||
|
<Appenders>
|
||||||
|
<File name="error" fileName="Errors.log" append="true">
|
||||||
|
<PatternLayout>
|
||||||
|
<Pattern>
|
||||||
|
[%-5level] %msg (%d{dd.MM.yyyy})%n
|
||||||
|
</Pattern>
|
||||||
|
</PatternLayout>
|
||||||
|
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
|
||||||
|
</File>
|
||||||
|
<File name="info" fileName="Infos.log" append="true">
|
||||||
|
<PatternLayout>
|
||||||
|
<Pattern>
|
||||||
|
[%-5level] %msg (%d{dd.MM.yyyy})%n
|
||||||
|
</Pattern>
|
||||||
|
</PatternLayout>
|
||||||
|
<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="ACCEPT"/>
|
||||||
|
</File>
|
||||||
|
</Appenders>
|
||||||
|
<Loggers>
|
||||||
|
<Logger name="logger" level="info" additivity="false">
|
||||||
|
<AppenderRef ref="info" level="INFO"/>
|
||||||
|
<AppenderRef ref="error" level="WARN"/>
|
||||||
|
</Logger>
|
||||||
|
</Loggers>
|
||||||
|
</Configuration>
|
Loading…
Reference in New Issue
Block a user