это гипо
This commit is contained in:
parent
b3c2b175c7
commit
7dd4ec395c
@ -5,7 +5,8 @@ import src.Generics.AirplaneGenericCollection;
|
||||
import src.MovementStrategy.DrawningObjectAirplane;
|
||||
import src.Generics.AirplaneGenericStorage;
|
||||
import src.Generics.AirplaneTrashCollection;
|
||||
import src.DrawningObjects.ExtentionDrawningAirplane;
|
||||
import src.Exceptions.AirplaneNotFoundException;
|
||||
import src.Exceptions.AirplaneStorageOverflowException;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@ -14,9 +15,8 @@ import java.awt.event.ActionListener;
|
||||
import java.util.List;
|
||||
import javax.swing.filechooser.FileFilter;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.FileNotFoundException;
|
||||
|
||||
import org.apache.logging.log4j.*;
|
||||
|
||||
@ -37,6 +37,7 @@ class TxtSaveFilter extends FileFilter {
|
||||
}
|
||||
|
||||
public class FormAirplaneCollection {
|
||||
private final Logger _logger;
|
||||
private final AirplaneGenericStorage _storage;
|
||||
private JList<String> listBoxStorages;
|
||||
private DefaultListModel<String> listBoxModel;
|
||||
@ -64,6 +65,7 @@ public class FormAirplaneCollection {
|
||||
}
|
||||
|
||||
public FormAirplaneCollection() {
|
||||
_logger = LogManager.getLogger("logger");
|
||||
JMenuBar menuFile = new JMenuBar();
|
||||
JMenu file = new JMenu("Файл");
|
||||
menuFile.add(file);
|
||||
@ -123,8 +125,10 @@ public class FormAirplaneCollection {
|
||||
File file = new File(fc.getSelectedFile() + "." + "txt");
|
||||
try {
|
||||
_storage.SaveData(file);
|
||||
} catch (IOException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
_logger.info("Сохранено в файл: " + file.getAbsolutePath());
|
||||
} catch (Exception ex) {
|
||||
JOptionPane.showMessageDialog(null, "Ошибка при сохранении всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||
_logger.error("Не удалось сохранить объекты в файл: " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -143,8 +147,10 @@ public class FormAirplaneCollection {
|
||||
}
|
||||
_storage._airplaneStorages.get(listBoxStorages.getSelectedValue()).SaveData(file, listBoxStorages.getSelectedValue());
|
||||
ReloadObjects();
|
||||
} catch (IOException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
_logger.info("Сохранена коллекция в файл: " + file.getAbsolutePath());
|
||||
} catch (Exception ex) {
|
||||
JOptionPane.showMessageDialog(null, "Ошибка при сохранении коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||
_logger.error("Не удалось сохранить коллекцию в файл: " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -159,13 +165,17 @@ public class FormAirplaneCollection {
|
||||
try {
|
||||
_storage.LoadData(file);
|
||||
canv._storage =_storage;
|
||||
ReloadObjects();
|
||||
canv.repaint();
|
||||
} catch (IOException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
_logger.info("Загружено из файла: " + file.getAbsolutePath());
|
||||
} catch (FileNotFoundException ex) {
|
||||
JOptionPane.showMessageDialog(null, "Ошибка при загрузке всех объектов " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||
_logger.error("Не удалось загрузить объекты из файла: " + file.getAbsolutePath());
|
||||
}
|
||||
catch (Exception ex){
|
||||
_logger.fatal("фатальная ошибка");
|
||||
}
|
||||
}
|
||||
|
||||
ReloadObjects();
|
||||
canv.repaint();
|
||||
}
|
||||
});
|
||||
loadCollection.addActionListener(new ActionListener() {
|
||||
@ -179,8 +189,10 @@ public class FormAirplaneCollection {
|
||||
_storage.LoadCollection(file);
|
||||
ReloadObjects();
|
||||
canv.repaint();
|
||||
_logger.info("Загружен файл с коллекцией: " + file.getAbsolutePath());
|
||||
} catch (IOException ex) {
|
||||
throw new RuntimeException(ex);
|
||||
JOptionPane.showMessageDialog(null, "Ошибка при загрузке коллекции " + ex.getMessage(), "Результат", JOptionPane.ERROR_MESSAGE);
|
||||
_logger.error("Не удалось загрузить коллекцию из файла: " + file.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -189,8 +201,9 @@ public class FormAirplaneCollection {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (storageName.getText() == null)
|
||||
return;
|
||||
_logger.error("Не удалось добавить набор: " + storageName);
|
||||
_storage.AddSet(storageName.getText());
|
||||
_logger.info("Добавлен набор: " + storageName.getText());
|
||||
ReloadObjects();
|
||||
}
|
||||
});
|
||||
@ -198,10 +211,11 @@ public class FormAirplaneCollection {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (listBoxStorages.getSelectedIndex() == -1) {
|
||||
return;
|
||||
_logger.error("Не выбран набор для удаления");
|
||||
}
|
||||
_storage.DelSet(listBoxStorages.getSelectedValue(), _trashCollection);
|
||||
ReloadObjects();
|
||||
_logger.info("Удален набор: " + listBoxStorages.getSelectedValue());
|
||||
}
|
||||
});
|
||||
callTrashButton.addActionListener(new ActionListener() {
|
||||
@ -218,24 +232,33 @@ public class FormAirplaneCollection {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (listBoxStorages.getSelectedIndex() == -1) {
|
||||
return;
|
||||
_logger.warn("Не выбрана коллекция для добавления объекта");
|
||||
}
|
||||
AirplaneGenericCollection<DrawningAirplane, DrawningObjectAirplane> _airplanes = _storage.Get(listBoxStorages.getSelectedValue());
|
||||
FormAirplaneConfig form = new FormAirplaneConfig();
|
||||
form.addButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (_airplanes.Insert(form._airplane)) {
|
||||
JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||
form._airplane._pictureWidth = pictureBoxWidth;
|
||||
form._airplane._pictureHeight = pictureBoxHeight;
|
||||
Draw();
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||
try {
|
||||
if (_airplanes.Insert(form._airplane)) {
|
||||
JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||
form._airplane._pictureWidth = pictureBoxWidth;
|
||||
form._airplane._pictureHeight = pictureBoxHeight;
|
||||
Draw();
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(null, "Не удалось добавить объект", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||
|
||||
}
|
||||
form.frameConfig.dispose();
|
||||
Draw();
|
||||
_logger.info("Добавлен объект");
|
||||
} catch (AirplaneStorageOverflowException ex) {
|
||||
JOptionPane.showMessageDialog(null, ex.getMessage());
|
||||
_logger.warn("Не удалось добавить объект " + ex.getMessage());
|
||||
}
|
||||
catch (Exception ex){
|
||||
_logger.fatal("фатальная ошибка");
|
||||
}
|
||||
form.frameConfig.dispose();
|
||||
Draw();
|
||||
}
|
||||
});
|
||||
form.cancelButton.addActionListener(new ActionListener() {
|
||||
@ -251,26 +274,29 @@ public class FormAirplaneCollection {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (listBoxStorages.getSelectedIndex() == -1) {
|
||||
return;
|
||||
_logger.warn("Не выбрана коллекция для удаления объекта");
|
||||
}
|
||||
AirplaneGenericCollection<DrawningAirplane, DrawningObjectAirplane> _airplanes = _storage.Get(listBoxStorages.getSelectedValue());
|
||||
if (_airplanes == null) {
|
||||
return;
|
||||
_logger.warn("Набор равен null");
|
||||
}
|
||||
String tmp = airplaneNumb.getText();
|
||||
int numb;
|
||||
int numb=Integer.parseInt(tmp);
|
||||
try {
|
||||
numb = Integer.parseInt(tmp);
|
||||
} catch (Exception ex) {
|
||||
JOptionPane.showMessageDialog(null, "Введите число", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||
return;
|
||||
DrawningAirplane curAirplane = _airplanes.Get(numb);
|
||||
_trashCollection.Push(curAirplane);
|
||||
_airplanes.Remove(numb);
|
||||
_airplanes.ShowAirplanes();
|
||||
JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||
Draw();
|
||||
_logger.info("Удален объект по позиции " + numb);
|
||||
} catch (AirplaneNotFoundException ex) {
|
||||
JOptionPane.showMessageDialog(null, ex.getMessage());
|
||||
_logger.warn("Не удалось удалить объект" + ex.getMessage());
|
||||
}
|
||||
catch (Exception ex){
|
||||
_logger.fatal("фатальная ошибка");
|
||||
}
|
||||
DrawningAirplane curAirplane = _airplanes.Get(numb);
|
||||
_trashCollection.Push(curAirplane);
|
||||
_airplanes.Remove(numb);
|
||||
_airplanes.ShowAirplanes();
|
||||
JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE);
|
||||
Draw();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1,19 +1,9 @@
|
||||
package src;
|
||||
import src.DrawningObjects.DrawningAirplaneWithRadar;
|
||||
import src.DrawningObjects.DrawningAirplane;
|
||||
import src.MovementStrategy.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.*;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) throws IOException {
|
||||
System.setProperty("log4j.configurationFile", "C:\\Users\\1\\Desktop\\улгту\\2 курс\\РПП\\PIbd-23_Nasyrov_A_G_AirplaneWithRadar_hard\\src\\loggerFile.xml");
|
||||
FormAirplaneCollection form = new FormAirplaneCollection();
|
||||
}
|
||||
}
|
32
src/loggerFile.xml
Normal file
32
src/loggerFile.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration>
|
||||
<!-- Секция аппендеров -->
|
||||
<Appenders>
|
||||
<!-- Файловый аппендер -->
|
||||
<File name="fileWarnings" fileName="logWarnings.log">
|
||||
<PatternLayout>
|
||||
<Pattern> %m (дата-%d{d.M.y}) %ex%n</Pattern>
|
||||
</PatternLayout>
|
||||
</File>
|
||||
|
||||
<File name="fileInfo" fileName="logInfo.log">
|
||||
<PatternLayout>
|
||||
<Pattern> %m (дата-%d{d.M.y}) %ex%n</Pattern>
|
||||
</PatternLayout>
|
||||
<Filters>
|
||||
<!-- Now deny warn, error and fatal messages -->
|
||||
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
|
||||
|
||||
<!-- This filter accepts info, warn, error, fatal and denies debug/trace -->
|
||||
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
|
||||
</Filters>
|
||||
</File>
|
||||
</Appenders>
|
||||
<!-- Секция логгеров -->
|
||||
<Loggers>
|
||||
<Logger name="logger" level="info" additivity="false">
|
||||
<AppenderRef ref="fileInfo" level="INFO"/>
|
||||
<AppenderRef ref="fileWarnings" level="WARN"/>
|
||||
</Logger>
|
||||
</Loggers>
|
||||
</Configuration>
|
Loading…
Reference in New Issue
Block a user