Zhimolostnova A.V. Hard lab work 7 #12
3
.gitignore
vendored
3
.gitignore
vendored
@ -75,5 +75,4 @@ fabric.properties
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
.idea/caches/build_file_checksums.ser
|
@ -8,5 +8,23 @@
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/../../../../Log4j/apache-log4j-2.19.0-bin/log4j-api-2.19.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
<orderEntry type="module-library">
|
||||
<library>
|
||||
<CLASSES>
|
||||
<root url="jar://$MODULE_DIR$/../../../../Log4j/apache-log4j-2.19.0-bin/log4j-core-2.19.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES />
|
||||
</library>
|
||||
</orderEntry>
|
||||
</component>
|
||||
</module>
|
11
Errors.log
Normal file
11
Errors.log
Normal file
@ -0,0 +1,11 @@
|
||||
[WARN ] Хранилище переполнено: Превышено допустимое количество в хранилище: 104 (12.12.2022)
|
||||
[WARN ] Хранилище переполнено: Превышено допустимое количество в хранилище: 104 (12.12.2022)
|
||||
[WARN ] Не удалось удалить объект на позиции104 (12.12.2022)
|
||||
[FATAL] Неизвестная ошибка: Index 103 out of bounds for length 103 (12.12.2022)
|
||||
[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022)
|
||||
[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022)
|
||||
[WARN ] При добавлении карты не все данные были заполнены (14.12.2022)
|
||||
[FATAL] Неизвестная ошибка: Index 116 out of bounds for length 116 (14.12.2022)
|
||||
[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022)
|
||||
[ERROR] Хранилище переполнено: Превышено допустимое количество в хранилище: 117 (14.12.2022)
|
||||
[FATAL] Неизвестная ошибка: Index 116 out of bounds for length 116 (14.12.2022)
|
78
Infos.log
Normal file
78
Infos.log
Normal file
@ -0,0 +1,78 @@
|
||||
[INFO ] Переход на карту fsdfws (12.12.2022)
|
||||
[INFO ] Добавлена карта: fsdfws (12.12.2022)
|
||||
[INFO ] Переход на карту fsdfws (12.12.2022)
|
||||
[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage (12.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (12.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (12.12.2022)
|
||||
[INFO ] Объект на позиции32удален (12.12.2022)
|
||||
[INFO ] Новый объект добавлен (12.12.2022)
|
||||
[INFO ] Сохранение карты в файл: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage (12.12.2022)
|
||||
[INFO ] Переход на карту frrfwe (12.12.2022)
|
||||
[INFO ] Добавлена карта: frrfwe (12.12.2022)
|
||||
[INFO ] Переход на карту frrfwe (12.12.2022)
|
||||
[INFO ] Добавлена карта: frrfwe (12.12.2022)
|
||||
[INFO ] Переход на карту e2rew (12.12.2022)
|
||||
[INFO ] Добавлена карта: e2rew (12.12.2022)
|
||||
[INFO ] Новый объект добавлен (12.12.2022)
|
||||
[INFO ] Переход на карту e2rew (12.12.2022)
|
||||
[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage (12.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (12.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (12.12.2022)
|
||||
[INFO ] Объект на позиции103удален (12.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022)
|
||||
[INFO ] Переход на карту 3e32r3 (14.12.2022)
|
||||
[INFO ] Добавлена карта: 3e32r3 (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Переход на карту ewefg (14.12.2022)
|
||||
[INFO ] Добавлена карта: ewefg (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Переход на карту wwrr (14.12.2022)
|
||||
[INFO ] Добавлена карта: wwrr (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Переход на карту rwwa (14.12.2022)
|
||||
[INFO ] Добавлена карта: rwwa (14.12.2022)
|
||||
[INFO ] Переход на карту rwwa (14.12.2022)
|
||||
[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Новый объект добавлен (14.12.2022)
|
||||
[INFO ] Сохранение карты в файл: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022)
|
||||
[INFO ] Переход на карту ewrfwef (14.12.2022)
|
||||
[INFO ] Добавлена карта: ewrfwef (14.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Объект на позиции116удален (14.12.2022)
|
||||
[INFO ] Переход на карту dsafwsdf (14.12.2022)
|
||||
[INFO ] Загрузка карты из файла: C:\Users\Анюта\OneDrive\Документы\MapWithFullStorage.txt (14.12.2022)
|
||||
[INFO ] Объект на позиции116удален (14.12.2022)
|
15
src/FileDataFormatException.java
Normal file
15
src/FileDataFormatException.java
Normal file
@ -0,0 +1,15 @@
|
||||
import java.io.IOException;
|
||||
|
||||
public class FileDataFormatException extends IOException {
|
||||
public FileDataFormatException(){
|
||||
}
|
||||
public FileDataFormatException(String message){
|
||||
super(message);
|
||||
}
|
||||
public FileDataFormatException(String message,Throwable exception){
|
||||
super(message,exception);
|
||||
}
|
||||
protected FileDataFormatException(Throwable exception){
|
||||
super(exception);
|
||||
}
|
||||
}
|
@ -11,14 +11,18 @@
|
||||
<grid id="7fa54" binding="PictureBox" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="299" height="24"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<hspacer id="53f34">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="7" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="7" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="336" height="11"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
</hspacer>
|
||||
</children>
|
||||
|
@ -7,6 +7,7 @@ import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Optional;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
public class FormMapWithSetWarships extends JFrame{
|
||||
|
||||
@ -38,12 +39,18 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
put("Вторая карта",new SecondMap());
|
||||
}
|
||||
};
|
||||
private Logger logger;
|
||||
|
||||
public FormMapWithSetWarships(Logger logger){
|
||||
this();
|
||||
this.logger=logger;
|
||||
}
|
||||
|
||||
public FormMapWithSetWarships(){
|
||||
setTitle("Военный корабль");
|
||||
setContentPane(MainPanel);
|
||||
setResizable(false);
|
||||
setSize(1000,685);
|
||||
setSize(1150,690);
|
||||
ShowWindow();
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setVisible(true);
|
||||
@ -94,13 +101,12 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
dialog.showSaveDialog(this);
|
||||
|
||||
try {
|
||||
if (_mapsCollection.SaveData(dialog.getSelectedFile().getAbsolutePath())) {
|
||||
JOptionPane.showMessageDialog(this, "Сохранение прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "Не сохранилось", "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
_mapsCollection.SaveData(dialog.getSelectedFile().getAbsolutePath());
|
||||
logger.info("Сохранение всех карт в файл: "+dialog.getSelectedFile().getAbsolutePath());
|
||||
JOptionPane.showMessageDialog(this, "Сохранение всех карт прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Ошибка сохранения всех карт в файл: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Ошибка сохранения всех карт: "+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
});
|
||||
fileMenu.add(SaveMenuItem);
|
||||
@ -112,14 +118,13 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
dialog.showOpenDialog(this);
|
||||
|
||||
try {
|
||||
if (_mapsCollection.LoadData(dialog.getSelectedFile().getAbsolutePath())) {
|
||||
ReloadMaps();
|
||||
JOptionPane.showMessageDialog(this, "Загрузка прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "Не загрузилось", "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
_mapsCollection.LoadData(dialog.getSelectedFile().getAbsolutePath());
|
||||
ReloadMaps();
|
||||
logger.info("Загрузка всех карт из файла: "+dialog.getSelectedFile().getAbsolutePath());
|
||||
JOptionPane.showMessageDialog(this, "Загрузка всех карт прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Ошибка загрузки всех карт из файла: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Ошибка загрузки всех карт"+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
});
|
||||
fileMenu.add(LoadMenuItem);
|
||||
@ -131,13 +136,12 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
dialog.showSaveDialog(this);
|
||||
|
||||
try {
|
||||
if (_mapsCollection.SaveMap((String) Optional.ofNullable(ListBoxMaps.getSelectedValue()).orElse(""), dialog.getSelectedFile().getAbsolutePath())) {
|
||||
JOptionPane.showMessageDialog(this, "Сохранение прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "Не сохранилось", "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
_mapsCollection.SaveMap((String) Optional.ofNullable(ListBoxMaps.getSelectedValue()).orElse(""), dialog.getSelectedFile().getAbsolutePath());
|
||||
logger.info("Сохранение карты в файл: "+dialog.getSelectedFile().getAbsolutePath());
|
||||
JOptionPane.showMessageDialog(this, "Сохранение карты прошло успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Ошибка сохранения карты в файл: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Ошибка сохранения карты: "+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
});
|
||||
fileMenu.add(SaveMapMenuItem);
|
||||
@ -149,14 +153,13 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
dialog.showOpenDialog(this);
|
||||
|
||||
try {
|
||||
if (_mapsCollection.LoadMap(dialog.getSelectedFile().getAbsolutePath())) {
|
||||
ReloadMaps();
|
||||
JOptionPane.showMessageDialog(this, "Загрузка прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "Не загрузилось", "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
_mapsCollection.LoadMap(dialog.getSelectedFile().getAbsolutePath());
|
||||
ReloadMaps();
|
||||
logger.info("Загрузка карты из файла: "+dialog.getSelectedFile().getAbsolutePath());
|
||||
JOptionPane.showMessageDialog(this, "Загрузка карты прошла успешно", "Итог", JOptionPane.INFORMATION_MESSAGE);
|
||||
} catch (Exception ex) {
|
||||
logger.error("Ошибка загрузки карты из файла: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Ошибка загрузки карты"+ex.getMessage(), "Итог", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
});
|
||||
fileMenu.add(LoadMapMenuItem);
|
||||
@ -168,6 +171,7 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
return;
|
||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||
repaint();
|
||||
logger.info("Переход на карту "+ListBoxMaps.getSelectedValue());
|
||||
});
|
||||
|
||||
DeleteMapButton.addActionListener(e -> {
|
||||
@ -179,6 +183,7 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
"Удаление",JOptionPane.YES_NO_OPTION)==0)
|
||||
{
|
||||
_mapsCollection.DelMap(ListBoxMaps.getSelectedValue().toString());
|
||||
logger.info("Карта "+ListBoxMaps.getSelectedValue()+" удалена");
|
||||
ReloadMaps();
|
||||
}
|
||||
});
|
||||
@ -186,16 +191,19 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
CreateMapButton.addActionListener(e -> {
|
||||
if (СomboBoxSelectorMap.getSelectedIndex() == -1 || TextFieldMap.getText()==null || TextFieldMap.getText().equals(""))
|
||||
{
|
||||
logger.warn("При добавлении карты не все данные были заполнены");
|
||||
JOptionPane.showMessageDialog(this,"Не все данные заполнены","Ошибка",JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
if (!_mapsDict.containsKey(СomboBoxSelectorMap.getSelectedItem()))
|
||||
{
|
||||
logger.warn("Карты не существует");
|
||||
JOptionPane.showMessageDialog(this,"Нет такой карты","Ошибка",JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
_mapsCollection.AddMap(TextFieldMap.getText(), _mapsDict.get(СomboBoxSelectorMap.getSelectedItem().toString()));
|
||||
ReloadMaps();
|
||||
logger.info("Добавлена карта: "+TextFieldMap.getText());
|
||||
});
|
||||
|
||||
ButtonShowOnMap.addActionListener(e -> {
|
||||
@ -224,14 +232,24 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
FormWarshipConfig dialog=new FormWarshipConfig();
|
||||
dialog.addListener(obj -> {
|
||||
if (obj!=null) {
|
||||
DrawingObjectWarship warship = new DrawingObjectWarship(obj);
|
||||
try {
|
||||
DrawingObjectWarship warship = new DrawingObjectWarship(obj);
|
||||
|
||||
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).plus(warship)>=0) {
|
||||
JOptionPane.showMessageDialog(this, "Объект добавлен", "Успех", JOptionPane.INFORMATION_MESSAGE);
|
||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||
repaint();
|
||||
} else {
|
||||
JOptionPane.showMessageDialog(this, "Не удалось добавить объект", "Ошибка",JOptionPane.INFORMATION_MESSAGE);
|
||||
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).plus(warship) >= 0) {
|
||||
JOptionPane.showMessageDialog(this, "Объект добавлен", "Успех", JOptionPane.INFORMATION_MESSAGE);
|
||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||
repaint();
|
||||
logger.info("Новый объект добавлен");
|
||||
} else {
|
||||
logger.warn("Не удалось добавить объект");
|
||||
JOptionPane.showMessageDialog(this, "Не удалось добавить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}catch (StorageOverflowException ex){
|
||||
logger.error("Хранилище переполнено: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Ошибка. Хранилище переполнено: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||
}catch (Exception ex){
|
||||
logger.fatal("Неизвестная ошибка: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -252,14 +270,23 @@ public class FormMapWithSetWarships extends JFrame{
|
||||
if (result!=0)
|
||||
return;
|
||||
int pos = Integer.parseInt(txt);
|
||||
if(_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).minus(pos)!=null){
|
||||
JOptionPane.showMessageDialog(this, "Объект удален", "Успех", JOptionPane.INFORMATION_MESSAGE);
|
||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||
repaint();
|
||||
}
|
||||
else
|
||||
{
|
||||
JOptionPane.showMessageDialog(this,"Не удалось удалить объект","Ошибка",JOptionPane.INFORMATION_MESSAGE);
|
||||
|
||||
try {
|
||||
if (_mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).minus(pos) != null) {
|
||||
JOptionPane.showMessageDialog(this, "Объект удален", "Успех", JOptionPane.INFORMATION_MESSAGE);
|
||||
bufferedImage = _mapsCollection.get(ListBoxMaps.getSelectedValue().toString()).ShowSet();
|
||||
repaint();
|
||||
logger.info("Объект на позиции"+pos+"удален");
|
||||
} else {
|
||||
logger.warn("Не удалось удалить объект на позиции"+pos);
|
||||
JOptionPane.showMessageDialog(this, "Не удалось удалить объект", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
} catch(WarshipNotFoundException ex){
|
||||
logger.error("Ошибка удаления: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Ошибка удаления: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||
}catch (Exception ex){
|
||||
logger.fatal("Неизвестная ошибка: "+ex.getMessage());
|
||||
JOptionPane.showMessageDialog(this, "Неизвестная ошибка: "+ex.getMessage(), "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
import org.apache.logging.log4j.*;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
new FormMapWithSetWarships();
|
||||
new FormMapWithSetWarships(LogManager.getLogger(Main.class));
|
||||
}
|
||||
}
|
@ -50,7 +50,7 @@ public class MapsCollection {
|
||||
}
|
||||
|
||||
@SuppressWarnings("ResultOfMethodCallIgnored")
|
||||
public boolean SaveData(String filename) throws IOException {
|
||||
public void SaveData(String filename) throws IOException {
|
||||
|
||||
File file = new File(filename);
|
||||
|
||||
@ -66,21 +66,20 @@ public class MapsCollection {
|
||||
writer.println(String.format("%s%c%s", storage.getKey(), separatorDict, storage.getValue().GetData(separatorDict, separatorData)));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean LoadData(String filename) throws IOException {
|
||||
public void LoadData(String filename) throws IOException {
|
||||
|
||||
File file = new File(filename);
|
||||
|
||||
if (!file.exists())
|
||||
return false;
|
||||
throw new FileNotFoundException("Файл не найден");
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
|
||||
String currentLine = reader.readLine();
|
||||
|
||||
if (currentLine == null || !currentLine.contains("MapsCollection"))
|
||||
return false;
|
||||
throw new FileDataFormatException("Формат данных не верный");
|
||||
|
||||
_mapStorages.clear();
|
||||
|
||||
@ -95,11 +94,10 @@ public class MapsCollection {
|
||||
_mapStorages.get(elements[0]).LoadData(elements[2].split(separatorData + "\n?"));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("ResultOfMethodCallIgnored")
|
||||
public boolean SaveMap(String mapName, String filename) throws IOException {
|
||||
public void SaveMap(String mapName, String filename) throws IOException {
|
||||
File file = new File(filename);
|
||||
|
||||
if (file.exists())
|
||||
@ -110,7 +108,7 @@ public class MapsCollection {
|
||||
MapWithSetWarshipsGeneric<DrawingObjectWarship, AbstractMap> map = _mapStorages.getOrDefault(mapName, null);
|
||||
|
||||
if (map == null)
|
||||
return false;
|
||||
throw new IndexOutOfBoundsException();
|
||||
|
||||
try (PrintWriter writer = new PrintWriter(file)) {
|
||||
writer.println("Map");
|
||||
@ -120,20 +118,19 @@ public class MapsCollection {
|
||||
writer.println(warship.GetInfo());
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean LoadMap(String filename) throws IOException {
|
||||
public void LoadMap(String filename) throws IOException {
|
||||
File file = new File(filename);
|
||||
|
||||
if (!file.exists())
|
||||
return false;
|
||||
throw new FileNotFoundException("Файл не найден");
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
|
||||
String currentLine = reader.readLine();
|
||||
|
||||
if (currentLine == null || !currentLine.contains("Map"))
|
||||
return false;
|
||||
throw new FileDataFormatException("Формат данных не верный");
|
||||
|
||||
String mapName = reader.readLine();
|
||||
|
||||
@ -141,7 +138,7 @@ public class MapsCollection {
|
||||
if (_mapStorages.containsKey(mapName)) {
|
||||
map = _mapStorages.get(mapName);
|
||||
if (!map.GetMap().getClass().getSimpleName().equals(reader.readLine())) {
|
||||
return false;
|
||||
throw new FileDataFormatException("Формат данных не верный");
|
||||
}
|
||||
map._setWarship.Clear();
|
||||
} else {
|
||||
@ -156,7 +153,6 @@ public class MapsCollection {
|
||||
map._setWarship.Insert((DrawingObjectWarship) DrawingObjectWarship.Create(currentLine));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,8 +23,8 @@ public class SetWarshipsGeneric<T extends Object> implements Iterable<T>{
|
||||
|
||||
public int Insert(T warship)
|
||||
{
|
||||
if (_places.size()+1>=_maxCount)
|
||||
return -1;
|
||||
if (Count()>=_maxCount)
|
||||
throw new StorageOverflowException(_maxCount);
|
||||
_places.add(0,warship);
|
||||
return 0;
|
||||
}
|
||||
@ -32,9 +32,7 @@ public class SetWarshipsGeneric<T extends Object> implements Iterable<T>{
|
||||
public int Insert(T warship, int position)
|
||||
{
|
||||
if (position>=_maxCount||position<0)
|
||||
return -1;
|
||||
if (_places.size()+1>=_maxCount)
|
||||
return -1;
|
||||
throw new StorageOverflowException(_maxCount);
|
||||
_places.add(position,warship);
|
||||
return position;
|
||||
}
|
||||
@ -44,6 +42,8 @@ public class SetWarshipsGeneric<T extends Object> implements Iterable<T>{
|
||||
if (position>=_maxCount||position<0)
|
||||
return null;
|
||||
T deleted=_places.get(position);
|
||||
if (deleted==null)
|
||||
throw new WarshipNotFoundException(position);
|
||||
_places.remove(position);
|
||||
return deleted;
|
||||
}
|
||||
|
16
src/StorageOverflowException.java
Normal file
16
src/StorageOverflowException.java
Normal file
@ -0,0 +1,16 @@
|
||||
public class StorageOverflowException extends RuntimeException{
|
||||
public StorageOverflowException(){
|
||||
}
|
||||
public StorageOverflowException(String message){
|
||||
super(message);
|
||||
}
|
||||
public StorageOverflowException(String message,Throwable exception){
|
||||
super(message,exception);
|
||||
}
|
||||
protected StorageOverflowException(Throwable exception){
|
||||
super(exception);
|
||||
}
|
||||
public StorageOverflowException(int count){
|
||||
super("Превышено допустимое количество в хранилище: "+count);
|
||||
}
|
||||
}
|
16
src/WarshipNotFoundException.java
Normal file
16
src/WarshipNotFoundException.java
Normal file
@ -0,0 +1,16 @@
|
||||
public class WarshipNotFoundException extends RuntimeException{
|
||||
public WarshipNotFoundException(){
|
||||
}
|
||||
public WarshipNotFoundException(String message){
|
||||
super(message);
|
||||
}
|
||||
public WarshipNotFoundException(String message,Throwable exception){
|
||||
super(message,exception);
|
||||
}
|
||||
public WarshipNotFoundException(Throwable exception){
|
||||
super(exception);
|
||||
}
|
||||
protected WarshipNotFoundException(int pos){
|
||||
super("Корабль по позиции "+pos+" не найден");
|
||||
}
|
||||
}
|
27
src/log4j2.xml
Normal file
27
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="WARN" onMatch="DENY" onMismatch="ACCEPT"/>
|
||||
</File>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<Root level="INFO">
|
||||
<AppenderRef ref="info"/>
|
||||
<AppenderRef ref="error"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
Loading…
Reference in New Issue
Block a user