Настройка логирования действий.

This commit is contained in:
Programmist73 2022-12-02 17:21:08 +04:00
parent a457ebefcb
commit 828890ba17
3 changed files with 124 additions and 61 deletions

View File

@ -1,3 +1,4 @@
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import javax.imageio.ImageIO;
import javax.swing.*;
@ -42,7 +43,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
private final MapsCollection _mapsCollection;
//логгер
private static Logger logger = Logger.getLogger(Main.class);
private static Logger _logger;
//Для выпадающего списка
HashMap<String, AbstractMap> _mapsHashMap = new HashMap<>()
@ -55,6 +56,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
public FormMapWithSetPlanesGeneric()
{
super("Хранилище");
Logger.getLogger(FormMapWithSetPlanesGeneric.class.getName());
CreateWindow();
_mapsCollection = new MapsCollection(730, 700);
ComboBoxSelectorMap.removeAllItems();
@ -127,17 +129,28 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
{
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
if(ComboBoxSelectorMap.getSelectedIndex() == -1)
{
_logger.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была выбрана карта");
}
else
{
_logger.log(Level.ERROR, "При добавлении карты " + ComboBoxSelectorMap.getSelectedIndex() + "не была названа карта");
}
return;
}
if(!_mapsHashMap.containsKey(ComboBoxSelectorMap.getSelectedItem()))
{
JOptionPane.showMessageDialog(null, "Данная карта отсутсвует", "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR, "Отсутствует карта с названием " + TextBoxNewMapName.getText());
return;
}
_mapsCollection.AddMap(TextBoxNewMapName.getText(), _mapsHashMap.get(ComboBoxSelectorMap.getSelectedItem().toString()));
_logger.log(Level.INFO, "Добавлена карта " + TextBoxNewMapName.getText());
ReloadMaps();
}
});
@ -155,6 +168,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
"Удаление", JOptionPane.YES_NO_OPTION) == 0)
{
_mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString());
_logger.log(Level.INFO, "Удалена карта " + ListBoxMaps.getSelectedValue().toString());
ReloadMaps();
}
}
@ -170,6 +184,7 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
}
UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet());
_logger.log(Level.INFO, "Осуществлён переход на карту под названием " + ListBoxMaps.getSelectedValue().toString());
}
});
@ -203,27 +218,46 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
public void actionPerformed(ActionEvent e) {
FormPlaneConfig form = new FormPlaneConfig();
form.AddEvent(newPlane ->{
if(ListBoxMaps.getSelectedIndex() == -1)
form.AddEvent(newPlane -> {
try
{
if (ListBoxMaps.getSelectedIndex() == -1) {
return;
}
if(newPlane != null)
{
if (newPlane != null) {
DrawningObjectPlane plane = new DrawningObjectPlane(newPlane);
if(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Add(plane) != -1)
{
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Add(plane) != -1) {
JOptionPane.showMessageDialog(null, "Объект добавлен");
_logger.log(Level.INFO, "Добавлен объект: " + plane);
UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet());
} else {
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.INFO, "Не удалось добавить объект: " + plane);
}
else
}
}
catch(StorageOverflowException ex)
{
JOptionPane.showMessageDialog(null, "Не удалось добавить объект");
_logger.log(Level.WARN, "Ошибка, переполнение хранилища: " + ex.getMessage());
JOptionPane.showConfirmDialog(null, "Ошибка, хранилище переполнено: " + ex.getMessage(), "Результат",
JOptionPane.ERROR_MESSAGE);
}
catch(IllegalArgumentException ex)
{
_logger.log(Level.ERROR, "Ошибка добавления: " + ex.getMessage());
JOptionPane.showConfirmDialog(null, ex.getMessage(), "Результат",
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
}
catch(Exception ex)
{
JOptionPane.showConfirmDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Результат",
JOptionPane.ERROR_MESSAGE);
_logger.log(Level.FATAL, "Неизвестная ошибка: " + ex.getMessage());
}
});
form.setSize(975, 360);
form.setVisible(true);
}
@ -248,14 +282,25 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
int pos = Integer.parseInt(MaskedTextBoxPosition.getText());
if(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos) != null)
{
JOptionPane.showMessageDialog(null,"Объект удалён");
try {
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos) != null) {
JOptionPane.showMessageDialog(null, "Объект удалён");
_logger.log(Level.INFO, "Oбъект удалён: " + _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos));
UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet());
} else {
JOptionPane.showMessageDialog(null, "Не удалось удалить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR, "Не удалось удалить объект " + _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).Delete(pos));
}
else
}
catch (PlaneNotFoundException ex)
{
JOptionPane.showMessageDialog(null,"Не удалось удалить объект");
JOptionPane.showMessageDialog(null, "Ошибка удаления: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.WARN, "Ошибка удаления: " + ex.getMessage());
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: " + ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.FATAL, "Ошибка удаления: " + ex.getMessage());
}
}
});
@ -282,7 +327,13 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
return;
}
try {
UpdateWindow(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowOnMap());
} catch (StorageOverflowException ex) {
ex.printStackTrace();
} catch (PlaneNotFoundException ex) {
ex.printStackTrace();
}
}
});
@ -391,16 +442,19 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if (result == JFileChooser.APPROVE_OPTION)
{
if (_mapsCollection.LoadData(jfc.getSelectedFile().getPath()))
try
{
_mapsCollection.LoadData(jfc.getSelectedFile().getPath());
ReloadMaps();
JOptionPane.showMessageDialog(null,"Загрузка данных прошла успешно",
"Результат", JOptionPane.INFORMATION_MESSAGE);
_logger.log(Level.INFO, "Загрузка карт прошла успешно");
}
else
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Ошибка загрузки данных",
JOptionPane.showMessageDialog(null, "Ошибка загрузки данных" + ex.getMessage(),
"Результат", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR, "Ошибка загрузки: " + ex.getMessage());
}
}
}
@ -415,15 +469,18 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if (result == JFileChooser.APPROVE_OPTION)
{
if (_mapsCollection.SaveData(jfc.getSelectedFile().getPath()))
try
{
_mapsCollection.SaveData(jfc.getSelectedFile().getPath());
JOptionPane.showMessageDialog(null,"Сохранение прошло успешно",
"Результат", JOptionPane.INFORMATION_MESSAGE);
_logger.log(Level.ERROR,"Сохранение прошло успешно");
}
else
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Не сохранилось",
JOptionPane.showMessageDialog(null, "Не сохранилось" + ex.getMessage(),
"Результат", JOptionPane.ERROR_MESSAGE);
_logger.log(Level.ERROR,"Ошибка сохранения: " + ex.getMessage());
}
}
}
@ -438,18 +495,21 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if (result == JFileChooser.APPROVE_OPTION)
{
if (_mapsCollection.LoadOneData(jfc.getSelectedFile().getPath()))
{
try {
if (_mapsCollection.LoadOneData(jfc.getSelectedFile().getPath())) {
ReloadMaps();
JOptionPane.showMessageDialog(null,"Загрузка данных прошла успешно",
JOptionPane.showMessageDialog(null, "Загрузка данных прошла успешно",
"Результат", JOptionPane.INFORMATION_MESSAGE);
}
else
{
} else {
JOptionPane.showMessageDialog(null, "Ошибка загрузки данных",
"Результат", JOptionPane.ERROR_MESSAGE);
}
}
catch(Exception ex)
{
throw new RuntimeException(ex);
}
}
}
});
@ -462,17 +522,20 @@ public class FormMapWithSetPlanesGeneric extends JFrame{
if (result == JFileChooser.APPROVE_OPTION)
{
if (_mapsCollection.SaveOneData(jfc.getSelectedFile().getPath(), ListBoxMaps.getSelectedValue().toString()))
{
JOptionPane.showMessageDialog(null,"Сохранение прошло успешно",
try {
if (_mapsCollection.SaveOneData(jfc.getSelectedFile().getPath(), ListBoxMaps.getSelectedValue().toString())) {
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно",
"Результат", JOptionPane.INFORMATION_MESSAGE);
}
else
{
} else {
JOptionPane.showMessageDialog(null, "Не сохранилось",
"Результат", JOptionPane.ERROR_MESSAGE);
}
}
catch(Exception ex)
{
throw new RuntimeException(ex);
}
}
}
});
}

View File

@ -37,13 +37,12 @@ public class MapWithSetPlanesGeneric <T extends IDrawningObject, U extends Abstr
_map = map;
}
public int Add(T plane)
public int Add(T plane) throws StorageOverflowException
{
return _setPlanes.Insert(plane);
}
public T Delete(int position)
{
public T Delete(int position) throws PlaneNotFoundException {
T temp = _setPlanes.Remove(position);
_deletePlane.add(temp);
@ -62,8 +61,7 @@ public class MapWithSetPlanesGeneric <T extends IDrawningObject, U extends Abstr
}
//просмотр объекта на карте
public BufferedImage ShowOnMap()
{
public BufferedImage ShowOnMap() throws StorageOverflowException, PlaneNotFoundException {
Shaking();
for(int i = 0; i < _setPlanes.Count(); i++)
@ -104,8 +102,7 @@ public class MapWithSetPlanesGeneric <T extends IDrawningObject, U extends Abstr
}
//Загрузка списка из массива строк
public void LoadData(String[] records)
{
public void LoadData(String[] records) throws StorageOverflowException {
for (var rec : records)
{
_setPlanes.Insert((T)DrawningObjectPlane.Create(rec));
@ -113,8 +110,7 @@ public class MapWithSetPlanesGeneric <T extends IDrawningObject, U extends Abstr
}
//"взламываем" набор, чтобы все элементы оказались в начале
private void Shaking()
{
private void Shaking() throws StorageOverflowException, PlaneNotFoundException {
int j = _setPlanes.Count() - 1;
for (int i = 0; i < _setPlanes.Count(); i++)

View File

@ -23,14 +23,18 @@ public class SetPlanesGeneric<T extends Object> implements Iterable<T>
}
//добавление объекта в набор
public int Insert(T plane)
{
public int Insert(T plane) throws StorageOverflowException {
return Insert(plane, 0);
}
//добавление объекта в набор на конкретную позицию
public int Insert(T plane, int position)
public int Insert(T plane, int position) throws StorageOverflowException {
//проверка на переполнение хранилища
if(_maxCount == Count())
{
throw new StorageOverflowException(_maxCount);
}
//проверка на корректность значения индекса
if (position >= _maxCount|| position < 0)
{
@ -43,12 +47,12 @@ public class SetPlanesGeneric<T extends Object> implements Iterable<T>
}
//удаление объекта из набора с конкретной позиции
public T Remove(int position)
public T Remove(int position) throws PlaneNotFoundException
{
// проверка позиции
if (position >= _maxCount || position < 0)
{
return null;
throw new PlaneNotFoundException(position);
}
// удаление объекта из массива, присовив элементу массива значение null
@ -69,7 +73,7 @@ public class SetPlanesGeneric<T extends Object> implements Iterable<T>
return _places.get(position);
}
public void Set(int position, T value)
public void Set(int position, T value) throws StorageOverflowException
{
if(position >= _maxCount || position < 0)
{