Скорее всего конечные правки 7-й лабораторной.

This commit is contained in:
Programmist73 2022-12-02 18:13:52 +04:00
parent 828890ba17
commit fd1be311a2
9 changed files with 65 additions and 58 deletions

4
Project/loginfo.log Normal file
View File

@ -0,0 +1,4 @@
INFO FormMapWithSetPlanesGeneric:157 - Добавлена карта 123 02-12-2022
INFO FormMapWithSetPlanesGeneric:191 - Осуществлён переход на карту под названием 123 02-12-2022
INFO FormMapWithSetPlanesGeneric:157 - Добавлена карта 454 02-12-2022
INFO FormMapWithSetPlanesGeneric:191 - Осуществлён переход на карту под названием 454 02-12-2022

View File

@ -1,3 +0,0 @@
2022-12-02 15:37:35 INFO Main:17 - ШАЛОМ ЁМАНА :)))
2022-12-02 15:41:33 INFO Main:17 - ШАЛОМ ЁМАНА :)))
2022-12-02 15:42:13 INFO Main:17 - ШАЛОМ ЁМАНА :)))

2
Project/logwarn.log Normal file
View File

@ -0,0 +1,2 @@
WARN FormMapWithSetPlanesGenericAdmin:304 - Ошибка удаления: Не найден объект по позиции 1 02-12-2022
WARN FormMapWithSetPlanesGenericAdmin:304 - Ошибка удаления: Не найден объект по позиции 0 02-12-2022

View File

@ -45,6 +45,10 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
//логгер //логгер
private static Logger _logger; private static Logger _logger;
//дополнительные логгеры
Logger logwarn = Logger.getLogger("FormMapWithSetPlanesGenericAdmin");
Logger loginfo = Logger.getLogger("FormMapWithSetPlanesGeneric");
//Для выпадающего списка //Для выпадающего списка
HashMap<String, AbstractMap> _mapsHashMap = new HashMap<>() HashMap<String, AbstractMap> _mapsHashMap = new HashMap<>()
{{ {{
@ -131,11 +135,11 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if(ComboBoxSelectorMap.getSelectedIndex() == -1) if(ComboBoxSelectorMap.getSelectedIndex() == -1)
{ {
_logger.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была выбрана карта"); logwarn.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была выбрана карта");
} }
else else
{ {
_logger.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была названа карта"); logwarn.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была названа карта");
} }
return; return;
@ -144,13 +148,13 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if(!_mapsHashMap.containsKey(ComboBoxSelectorMap.getSelectedItem())) if(!_mapsHashMap.containsKey(ComboBoxSelectorMap.getSelectedItem()))
{ {
JOptionPane.showMessageDialog(null, "Данная карта отсутсвует", "Ошибка", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Данная карта отсутсвует", "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR, "Отсутствует карта с названием " + TextBoxNewMapName.getText()); logwarn.log(Level.ERROR, "Отсутствует карта с названием " + TextBoxNewMapName.getText());
return; return;
} }
_mapsCollection.AddMap(TextBoxNewMapName.getText(), _mapsHashMap.get(ComboBoxSelectorMap.getSelectedItem().toString())); _mapsCollection.AddMap(TextBoxNewMapName.getText(), _mapsHashMap.get(ComboBoxSelectorMap.getSelectedItem().toString()));
_logger.log(Level.INFO, "Добавлена карта " + TextBoxNewMapName.getText()); loginfo.log(Level.INFO, "Добавлена карта " + TextBoxNewMapName.getText());
ReloadMaps(); ReloadMaps();
} }
}); });
@ -168,7 +172,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
"Удаление", JOptionPane.YES_NO_OPTION) == 0) "Удаление", JOptionPane.YES_NO_OPTION) == 0)
{ {
_mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString()); _mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString());
_logger.log(Level.INFO, "Удалена карта " + ListBoxMaps.getSelectedValue().toString()); loginfo.log(Level.INFO, "Удалена карта " + ListBoxMaps.getSelectedValue().toString());
ReloadMaps(); ReloadMaps();
} }
} }
@ -184,7 +188,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
} }
UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet()); UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet());
_logger.log(Level.INFO, "Осуществлён переход на карту под названием " + ListBoxMaps.getSelectedValue().toString()); loginfo.log(Level.INFO, "Осуществлён переход на карту под названием " + ListBoxMaps.getSelectedValue().toString());
} }
}); });
@ -230,31 +234,31 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Add(plane) != -1) { if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Add(plane) != -1) {
JOptionPane.showMessageDialog(null, "Объект добавлен"); JOptionPane.showMessageDialog(null, "Объект добавлен");
_logger.log(Level.INFO, "Добавлен объект: " + plane); loginfo.log(Level.INFO, "Добавлен объект: " + plane);
UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet()); UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet());
} else { } else {
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Ошибка", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.INFO, "Не удалось добавить объект: " + plane); loginfo.log(Level.INFO, "Не удалось добавить объект: " + plane);
} }
} }
} }
catch(StorageOverflowException ex) catch(StorageOverflowException ex)
{ {
_logger.log(Level.WARN, "Ошибка, переполнение хранилища: " + ex.getMessage());
JOptionPane.showConfirmDialog(null, "Ошибка, хранилище переполнено: " + ex.getMessage(), "Результат", JOptionPane.showConfirmDialog(null, "Ошибка, хранилище переполнено: " + ex.getMessage(), "Результат",
JOptionPane.ERROR_MESSAGE); JOptionPane.ERROR_MESSAGE);
logwarn.log(Level.WARN, "Ошибка, переполнение хранилища: " + ex.getMessage());
} }
catch(IllegalArgumentException ex) catch(IllegalArgumentException ex)
{ {
_logger.log(Level.ERROR, "Ошибка добавления: " + ex.getMessage());
JOptionPane.showConfirmDialog(null, ex.getMessage(), "Результат", JOptionPane.showConfirmDialog(null, ex.getMessage(), "Результат",
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
logwarn.log(Level.ERROR, "Ошибка добавления: " + ex.getMessage());
} }
catch(Exception ex) catch(Exception ex)
{ {
JOptionPane.showConfirmDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Результат", JOptionPane.showConfirmDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Результат",
JOptionPane.ERROR_MESSAGE); JOptionPane.ERROR_MESSAGE);
_logger.log(Level.FATAL, "Неизвестная ошибка: " + ex.getMessage()); logwarn.log(Level.FATAL, "Неизвестная ошибка: " + ex.getMessage());
} }
}); });
@ -283,24 +287,26 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
int pos = Integer.parseInt(MaskedTextBoxPosition.getText()); int pos = Integer.parseInt(MaskedTextBoxPosition.getText());
try { try {
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos) != null) { var deletePlane = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos);
JOptionPane.showMessageDialog(null, "Объект удалён");
_logger.log(Level.INFO, "Oбъект удалён: " + _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos)); if (deletePlane != null) {
JOptionPane.showMessageDialog(null, "Объект удалён " + deletePlane);
loginfo.log(Level.INFO, "Oбъект удалён: " + deletePlane);
UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet()); UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet());
} else { } else {
JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Ошибка", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR, "Не удалось удалить объект " + _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos)); logwarn.log(Level.ERROR, "Не удалось удалить объект " + deletePlane);
} }
} }
catch (PlaneNotFoundException ex) catch (PlaneNotFoundException ex)
{ {
JOptionPane.showMessageDialog(null, "Ошибка удаления: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Ошибка удаления: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.WARN, "Ошибка удаления: " + ex.getMessage()); logwarn.log(Level.WARN, "Ошибка удаления: " + ex.getMessage());
} }
catch (Exception ex) catch (Exception ex)
{ {
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.FATAL, "Ошибка удаления: " + ex.getMessage()); logwarn.log(Level.FATAL, "Ошибка удаления: " + ex.getMessage());
} }
} }
}); });
@ -448,13 +454,13 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
ReloadMaps(); ReloadMaps();
JOptionPane.showMessageDialog(null,"Загрузка данных прошла успешно", JOptionPane.showMessageDialog(null,"Загрузка данных прошла успешно",
"Результат", JOptionPane.INFORMATION_MESSAGE); "Результат", JOptionPane.INFORMATION_MESSAGE);
_logger.log(Level.INFO, "Загрузка карт прошла успешно"); loginfo.log(Level.INFO, "Загрузка карт прошла успешно");
} }
catch(Exception ex) catch(Exception ex)
{ {
JOptionPane.showMessageDialog(null, "Ошибка загрузки данных" + ex.getMessage(), JOptionPane.showMessageDialog(null, "Ошибка загрузки данных" + ex.getMessage(),
"Результат", JOptionPane.ERROR_MESSAGE); "Результат", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR, "Ошибка загрузки: " + ex.getMessage()); logwarn.log(Level.ERROR, "Ошибка загрузки: " + ex.getMessage());
} }
} }
} }
@ -474,13 +480,13 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
_mapsCollection.SaveData(jfc.getSelectedFile().getPath()); _mapsCollection.SaveData(jfc.getSelectedFile().getPath());
JOptionPane.showMessageDialog(null,"Сохранение прошло успешно", JOptionPane.showMessageDialog(null,"Сохранение прошло успешно",
"Результат", JOptionPane.INFORMATION_MESSAGE); "Результат", JOptionPane.INFORMATION_MESSAGE);
_logger.log(Level.ERROR,"Сохранение прошло успешно"); logwarn.log(Level.ERROR,"Сохранение прошло успешно");
} }
catch(Exception ex) catch(Exception ex)
{ {
JOptionPane.showMessageDialog(null, "Не сохранилось" + ex.getMessage(), JOptionPane.showMessageDialog(null, "Не сохранилось" + ex.getMessage(),
"Результат", JOptionPane.ERROR_MESSAGE); "Результат", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR,"Ошибка сохранения: " + ex.getMessage()); logwarn.log(Level.ERROR,"Ошибка сохранения: " + ex.getMessage());
} }
} }
} }
@ -523,16 +529,14 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if (result == JFileChooser.APPROVE_OPTION) if (result == JFileChooser.APPROVE_OPTION)
{ {
try { try {
if (_mapsCollection.SaveOneData(jfc.getSelectedFile().getPath(), ListBoxMaps.getSelectedValue().toString())) { _mapsCollection.SaveOneData(jfc.getSelectedFile().getPath(), ListBoxMaps.getSelectedValue().toString());
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", JOptionPane.showMessageDialog(null, "Сохранение прошло успешно",
"Результат", JOptionPane.INFORMATION_MESSAGE); "Результат", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Не сохранилось",
"Результат", JOptionPane.ERROR_MESSAGE);
}
} }
catch(Exception ex) catch(Exception ex)
{ {
JOptionPane.showMessageDialog(null, "Не сохранилось " + ex.getMessage(),
"Результат", JOptionPane.ERROR_MESSAGE);
throw new RuntimeException(ex); throw new RuntimeException(ex);
} }
} }

View File

@ -30,7 +30,7 @@ public class MapWithSetPlanesGeneric <T extends IDrawningObject, U extends Abstr
{ {
int width = picWidth / _placeSizeWidth; int width = picWidth / _placeSizeWidth;
int height = picHeight / _placeSizeHeight; int height = picHeight / _placeSizeHeight;
_setPlanes = new SetPlanesGeneric<T>(width * height); _setPlanes = new SetPlanesGeneric<T>(10);
_deletePlane = new LinkedList<>(); _deletePlane = new LinkedList<>();
_pictureWidth = picWidth; _pictureWidth = picWidth;
_pictureHeight = picHeight; _pictureHeight = picHeight;

View File

@ -78,13 +78,13 @@ public class MapsCollection
} }
//загрузка нформации по по самолётам в ангарах из файла //загрузка нформации по по самолётам в ангарах из файла
public Boolean LoadData(String filename) public void LoadData(String filename) throws FileNotFoundException
{ {
File file = new File(filename); File file = new File(filename);
if (!file.exists()) if (!file.exists())
{ {
return false; throw new FileNotFoundException("Файл не найден");
} }
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) try (BufferedReader reader = new BufferedReader(new FileReader(filename)))
@ -94,7 +94,7 @@ public class MapsCollection
//если не содержит такую запись или пустой файл //если не содержит такую запись или пустой файл
if ((str = reader.readLine()) == null || !str.contains("MapsCollection")) if ((str = reader.readLine()) == null || !str.contains("MapsCollection"))
{ {
return false; throw new IllegalArgumentException("Формат данных в файле неправильный");
} }
_mapStorage.clear(); _mapStorage.clear();
@ -123,16 +123,15 @@ public class MapsCollection
_mapStorage.get(element[0]).LoadData(element[2].split(String.valueOf(separatorData))); _mapStorage.get(element[0]).LoadData(element[2].split(String.valueOf(separatorData)));
} }
} }
catch (IOException e) catch (IOException | StorageOverflowException ex)
{ {
JOptionPane.showMessageDialog(null, e.getMessage()); JOptionPane.showMessageDialog(null, ex.getMessage());
throw new RuntimeException(ex);
} }
return true;
} }
//сохранение информации по самолётам в ангарах в файл //сохранение информации по самолётам в ангарах в файл
public Boolean SaveOneData(String filename, String mapName) public void SaveOneData(String filename, String mapName)
{ {
File file = new File(filename); File file = new File(filename);
@ -158,8 +157,6 @@ public class MapsCollection
catch (IOException e) { catch (IOException e) {
JOptionPane.showMessageDialog(null, e.getMessage()); JOptionPane.showMessageDialog(null, e.getMessage());
} }
return true;
} }
//загрузка информации по по самолётам в ангарах из файла //загрузка информации по по самолётам в ангарах из файла

View File

@ -1,6 +1,6 @@
public class PlaneNotFoundException extends Exception public class PlaneNotFoundException extends Exception
{ {
public PlaneNotFoundException(int i) {super ("Не найден объект по позиции" + i); } public PlaneNotFoundException(int i) {super ("Не найден объект по позиции " + i); }
public PlaneNotFoundException() { super(); } public PlaneNotFoundException() { super(); }

View File

@ -50,7 +50,7 @@ public class SetPlanesGeneric<T extends Object> implements Iterable<T>
public T Remove(int position) throws PlaneNotFoundException public T Remove(int position) throws PlaneNotFoundException
{ {
// проверка позиции // проверка позиции
if (position >= _maxCount || position < 0) if (position >= _places.size() || position < 0)
{ {
throw new PlaneNotFoundException(position); throw new PlaneNotFoundException(position);
} }

View File

@ -1,16 +1,19 @@
# Root logger option log4j.logger.FormMapWithSetPlanesGeneric=INFO, fileAppender
log4j.rootLogger=INFO, file, stdout log4j.logger.FormMapWithSetPlanesGenericAdmin=WARN, adminAppender
# Direct log messages to a log file log4j.additivity.file=false
log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.additivity.admin=false
log4j.appender.file.File=C:\logs.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to stdout log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.fileAppender.File=loginfo.log
log4j.appender.stdout.Target=System.out log4j.appender.fileAppender.MaxFileSize=5MB
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.fileAppender.MaxBackupIndex=1
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%-5p %c{1}:%L - %m %d{dd-MM-yyyy}%n
log4j.appender.adminAppender=org.apache.log4j.RollingFileAppender
log4j.appender.adminAppender.File=logwarn.log
log4j.appender.adminAppender.MaxFileSize=5MB
log4j.appender.adminAppender.MaxBackupIndex=1
log4j.appender.adminAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.adminAppender.layout.ConversionPattern=%-5p %c{1}:%L - %m %d{dd-MM-yyyy}%n