Compare commits
1 Commits
SixthLabWo
...
SeventhLab
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8ff85461e3 |
BIN
.vs/slnx.sqlite
BIN
.vs/slnx.sqlite
Binary file not shown.
@@ -14,11 +14,17 @@ import java.util.Queue;
|
|||||||
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionEvent;
|
||||||
import javax.swing.event.ListSelectionListener;
|
import javax.swing.event.ListSelectionListener;
|
||||||
import javax.swing.filechooser.FileNameExtensionFilter;
|
import javax.swing.filechooser.FileNameExtensionFilter;
|
||||||
|
import javax.swing.filechooser.FileFilter;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.LogManager;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
|
||||||
public class FormMapWithSetMachine extends javax.swing.JFrame {
|
public class FormMapWithSetMachine extends javax.swing.JFrame {
|
||||||
private Image img;
|
private Image img;
|
||||||
private MapsCollection _mapCollection;
|
private MapsCollection _mapCollection;
|
||||||
|
private static Logger _logger;
|
||||||
private final HashMap<String, AbstractMap> _mapsDict = new HashMap<>() {{
|
private final HashMap<String, AbstractMap> _mapsDict = new HashMap<>() {{
|
||||||
put("Простая карта", new SimpleMap());
|
put("Простая карта", new SimpleMap());
|
||||||
put("Вертикальная карта", new VerticalMap());
|
put("Вертикальная карта", new VerticalMap());
|
||||||
@@ -36,6 +42,12 @@ private Image img;
|
|||||||
MapComboBox.addItem(elem);
|
MapComboBox.addItem(elem);
|
||||||
}
|
}
|
||||||
_mapCollection = new MapsCollection(PicturePanel.getWidth(), PicturePanel.getHeight());
|
_mapCollection = new MapsCollection(PicturePanel.getWidth(), PicturePanel.getHeight());
|
||||||
|
try(FileInputStream ins = new FileInputStream(this.getClass().getResource("log.config").toString().substring(6))){
|
||||||
|
LogManager.getLogManager().readConfiguration(ins);
|
||||||
|
_logger = Logger.getLogger(FormMapWithSetMachine.class.getName());
|
||||||
|
}catch (Exception ignore){
|
||||||
|
ignore.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -346,6 +358,7 @@ private Image img;
|
|||||||
form.addWindowListener(new WindowAdapter() {
|
form.addWindowListener(new WindowAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void windowDeactivated(WindowEvent e) {
|
public void windowDeactivated(WindowEvent e) {
|
||||||
|
try{
|
||||||
if (form.getSelectedCar() == null)
|
if (form.getSelectedCar() == null)
|
||||||
return;
|
return;
|
||||||
DrawingObject machine = new DrawingObject(form.getSelectedCar());
|
DrawingObject machine = new DrawingObject(form.getSelectedCar());
|
||||||
@@ -353,15 +366,24 @@ private Image img;
|
|||||||
{
|
{
|
||||||
if (form.DialogResult) {
|
if (form.DialogResult) {
|
||||||
JOptionPane.showMessageDialog(null, "Объект добавлен");
|
JOptionPane.showMessageDialog(null, "Объект добавлен");
|
||||||
|
_logger.log(Level.INFO, "Добавлен объект: "+machine);
|
||||||
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
||||||
Draw();
|
Draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_logger.log(Level.INFO, "Не удалось добавить объект: "+machine);
|
||||||
JOptionPane.showMessageDialog(null, MapList.getSelectedValue().toString()+" Не удалось добавить объект");
|
JOptionPane.showMessageDialog(null, MapList.getSelectedValue().toString()+" Не удалось добавить объект");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch(StorageOverflowException ex)
|
||||||
|
{
|
||||||
|
_logger.log(Level.WARNING, "Ошибка переполнения хранилища: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка переполнения хранилища:"+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}//GEN-LAST:event_AddMachineButtonMouseClicked
|
}//GEN-LAST:event_AddMachineButtonMouseClicked
|
||||||
@@ -371,22 +393,36 @@ private Image img;
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
int res = JOptionPane.showConfirmDialog (null,"Удалить объект?",
|
int res = JOptionPane.showConfirmDialog (null,"Удалить объект?",
|
||||||
"Удаление", JOptionPane.YES_NO_OPTION);
|
"Удаление", JOptionPane.YES_NO_OPTION);
|
||||||
if (res == JOptionPane.YES_OPTION) {
|
if (res == JOptionPane.YES_OPTION) {
|
||||||
int pos = Integer.parseInt(TextBoxPosition.getText());
|
int pos = Integer.parseInt(TextBoxPosition.getText());
|
||||||
deleted.offer(_mapCollection.Get(MapList.getSelectedValue().toString()).GetMachineInList(pos).GetMachine());
|
var elem = _mapCollection.Get(MapList.getSelectedValue().toString()).GetMachineInList(pos).GetMachine();
|
||||||
|
deleted.offer(elem);
|
||||||
if (_mapCollection.Get(MapList.getSelectedValue().toString()).remove(pos) != null)
|
if (_mapCollection.Get(MapList.getSelectedValue().toString()).remove(pos) != null)
|
||||||
{
|
{
|
||||||
JOptionPane.showMessageDialog(null, "Объект удален");
|
JOptionPane.showMessageDialog(null, "Объект удален");
|
||||||
|
_logger.log(Level.INFO, "Удален объект: "+elem);
|
||||||
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
img = _mapCollection.Get(MapList.getSelectedValue().toString()).ShowSet();
|
||||||
Draw();
|
Draw();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_logger.log(Level.INFO, "Не удалось удалить объект по позиции: "+pos);
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось удалить объект");
|
JOptionPane.showMessageDialog(null, "Не удалось удалить объект");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch (MachineNotFoundException ex) {
|
||||||
|
_logger.log(Level.WARNING, "Ошибка удаления: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Ошибка удаления: "+ex.getMessage());
|
||||||
|
} catch (Exception ex) {
|
||||||
|
_logger.log(Level.WARNING, "Неизвестная ошибка удаления: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Неизвестная ошибка: "+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
}//GEN-LAST:event_DeleteButtonMouseClicked
|
}//GEN-LAST:event_DeleteButtonMouseClicked
|
||||||
|
|
||||||
private void StoreButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_StoreButtonMouseClicked
|
private void StoreButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_StoreButtonMouseClicked
|
||||||
@@ -409,15 +445,17 @@ private Image img;
|
|||||||
|
|
||||||
private void AddMapButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_AddMapButtonMouseClicked
|
private void AddMapButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_AddMapButtonMouseClicked
|
||||||
if (MapComboBox.getSelectedIndex() == -1 || MapNameTextField.getText().isEmpty()) {
|
if (MapComboBox.getSelectedIndex() == -1 || MapNameTextField.getText().isEmpty()) {
|
||||||
|
_logger.log(Level.INFO,"Не все данные были заполнены при добавлении карты");
|
||||||
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не все данные заполнены", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!_mapsDict.containsKey(MapComboBox.getSelectedItem())) {
|
if (!_mapsDict.containsKey(MapComboBox.getSelectedItem())) {
|
||||||
|
_logger.log(Level.INFO,"Нет карты с названием: "+MapComboBox.getSelectedItem());
|
||||||
JOptionPane.showMessageDialog(null, "Нет такой карты", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Нет такой карты", "Ошибка", JOptionPane.ERROR_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_mapCollection.AddMap(MapNameTextField.getText(), _mapsDict.get(MapComboBox.getSelectedItem().toString()));
|
_mapCollection.AddMap(MapNameTextField.getText(), _mapsDict.get(MapComboBox.getSelectedItem().toString()));
|
||||||
|
_logger.log(Level.INFO, "Добавлена карта: "+MapNameTextField.getText());
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
}//GEN-LAST:event_AddMapButtonMouseClicked
|
}//GEN-LAST:event_AddMapButtonMouseClicked
|
||||||
private void ReloadMaps() {
|
private void ReloadMaps() {
|
||||||
@@ -454,6 +492,7 @@ private void ReloadMaps() {
|
|||||||
"Удаление", JOptionPane.YES_NO_OPTION) == 0) {
|
"Удаление", JOptionPane.YES_NO_OPTION) == 0) {
|
||||||
_mapCollection.DelMap(MapList.getSelectedValue().toString());
|
_mapCollection.DelMap(MapList.getSelectedValue().toString());
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
|
_logger.log(Level.INFO, "Удалена карта: "+MapList.getSelectedValue().toString());
|
||||||
}
|
}
|
||||||
}//GEN-LAST:event_DeleteMapButtonMouseClicked
|
}//GEN-LAST:event_DeleteMapButtonMouseClicked
|
||||||
|
|
||||||
@@ -494,6 +533,7 @@ private void ReloadMaps() {
|
|||||||
}
|
}
|
||||||
img = _mapCollection.Get((String)MapList.getSelectedValue()).ShowSet();
|
img = _mapCollection.Get((String)MapList.getSelectedValue()).ShowSet();
|
||||||
Draw();
|
Draw();
|
||||||
|
_logger.log(Level.INFO, "Переход на карту: "+MapList.getSelectedValue().toString());
|
||||||
}//GEN-LAST:event_MapListValueChanged
|
}//GEN-LAST:event_MapListValueChanged
|
||||||
|
|
||||||
private void DeletedFormOpenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_DeletedFormOpenMouseClicked
|
private void DeletedFormOpenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_DeletedFormOpenMouseClicked
|
||||||
@@ -523,14 +563,16 @@ private void ReloadMaps() {
|
|||||||
fs.setDialogTitle("Сохранение карты");
|
fs.setDialogTitle("Сохранение карты");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try{
|
||||||
File selectedFile = fs.getSelectedFile();
|
File selectedFile = fs.getSelectedFile();
|
||||||
if (_mapCollection.SaveMap(selectedFile.getPath(), MapList.getSelectedValue().toString()))
|
_mapCollection.SaveMap(selectedFile.getPath(), MapList.getSelectedValue().toString());
|
||||||
{
|
_logger.log(Level.INFO, "Успешное сохранение в файл: "+selectedFile.getPath());
|
||||||
JOptionPane.showMessageDialog(null, "Сохранение карты прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Сохранение карты прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
}
|
||||||
else
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
JOptionPane.showMessageDialog(null, "Не сохранилась карта", "Результат",JOptionPane.ERROR_MESSAGE);
|
_logger.log(Level.INFO, "Данные не сохранились: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Не сохранилась карта: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}//GEN-LAST:event_jMenuSaveMouseClicked
|
}//GEN-LAST:event_jMenuSaveMouseClicked
|
||||||
@@ -543,16 +585,21 @@ private void ReloadMaps() {
|
|||||||
fs.setDialogTitle("Сохранение карты");
|
fs.setDialogTitle("Сохранение карты");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
File selectedFile = fs.getSelectedFile();
|
try
|
||||||
if (_mapCollection.LoadMap(selectedFile.getPath()))
|
|
||||||
{
|
{
|
||||||
|
File selectedFile = fs.getSelectedFile();
|
||||||
|
_mapCollection.LoadMap(selectedFile.getPath());
|
||||||
|
|
||||||
|
_logger.log(Level.INFO, "Успешная загрузка из файла: "+selectedFile.getPath());
|
||||||
JOptionPane.showMessageDialog(null, "Загрузка карты прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Загрузка карты прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
}
|
}
|
||||||
else
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
JOptionPane.showMessageDialog(null, "Не сохранилась карта", "Результат",JOptionPane.ERROR_MESSAGE);
|
_logger.log(Level.WARNING, "Не загрузилось: "+ex.getMessage());
|
||||||
|
JOptionPane.showMessageDialog(null, "Не сохранилась карта: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}//GEN-LAST:event_jMenuLoadMouseClicked
|
}//GEN-LAST:event_jMenuLoadMouseClicked
|
||||||
|
|
||||||
@@ -564,16 +611,17 @@ private void ReloadMaps() {
|
|||||||
fs.setDialogTitle("Загрузка");
|
fs.setDialogTitle("Загрузка");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try{
|
||||||
File selectedFile = fs.getSelectedFile();
|
File selectedFile = fs.getSelectedFile();
|
||||||
if (_mapCollection.LoadData(selectedFile.getPath()))
|
_mapCollection.LoadData(selectedFile.getPath());
|
||||||
{
|
|
||||||
ReloadMaps();
|
ReloadMaps();
|
||||||
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
}
|
||||||
else
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
JOptionPane.showMessageDialog(null, "Не удалось загрузить", "Результат",JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не удалось загрузить: "+ex.getMessage(), "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}//GEN-LAST:event_jMenuLoadObjMouseClicked
|
}//GEN-LAST:event_jMenuLoadObjMouseClicked
|
||||||
|
|
||||||
@@ -585,15 +633,16 @@ private void ReloadMaps() {
|
|||||||
fs.setDialogTitle("Сохранение");
|
fs.setDialogTitle("Сохранение");
|
||||||
int result = fs.showSaveDialog(null);
|
int result = fs.showSaveDialog(null);
|
||||||
if (result == JFileChooser.APPROVE_OPTION) {
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try{
|
||||||
File selectedFile = fs.getSelectedFile();
|
File selectedFile = fs.getSelectedFile();
|
||||||
if (_mapCollection.SaveData(selectedFile.getPath()+".txt"))
|
_mapCollection.SaveData(selectedFile.getPath()+".txt");
|
||||||
{
|
|
||||||
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Сохранение прошло успешно", "Результат",JOptionPane.INFORMATION_MESSAGE);
|
||||||
}
|
}
|
||||||
else
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат",JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(null, "Не сохранилось", "Результат",JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}//GEN-LAST:event_jMenuSaveObjMouseClicked
|
}//GEN-LAST:event_jMenuSaveObjMouseClicked
|
||||||
public void Move(String name)
|
public void Move(String name)
|
||||||
|
|||||||
5
ArmoredVehicle/src/MachineNotFoundException.java
Normal file
5
ArmoredVehicle/src/MachineNotFoundException.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
public class MachineNotFoundException extends Exception {
|
||||||
|
public MachineNotFoundException(int i){
|
||||||
|
super("Не найден объект по позиции "+i);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -27,12 +27,12 @@ public class MapWithSetMachineGeneric<T extends IDrawingObject, U extends Abstra
|
|||||||
public void Clear() {
|
public void Clear() {
|
||||||
_setCars.Clear();
|
_setCars.Clear();
|
||||||
}
|
}
|
||||||
public int add(T car)
|
public int add(T car) throws StorageOverflowException
|
||||||
{
|
{
|
||||||
return _setCars.Insert(car);
|
return _setCars.Insert(car);
|
||||||
}
|
}
|
||||||
|
|
||||||
public T remove(int position)
|
public T remove(int position) throws MachineNotFoundException
|
||||||
{
|
{
|
||||||
return _setCars.Remove(position);
|
return _setCars.Remove(position);
|
||||||
}
|
}
|
||||||
@@ -79,8 +79,16 @@ public class MapWithSetMachineGeneric<T extends IDrawingObject, U extends Abstra
|
|||||||
var car = _setCars.Get(j);
|
var car = _setCars.Get(j);
|
||||||
if (car != null)
|
if (car != null)
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
_setCars.Insert(car, i);
|
_setCars.Insert(car, i);
|
||||||
|
} catch (StorageOverflowException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
try {
|
||||||
_setCars.Remove(j);
|
_setCars.Remove(j);
|
||||||
|
} catch (MachineNotFoundException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -142,7 +150,7 @@ public class MapWithSetMachineGeneric<T extends IDrawingObject, U extends Abstra
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
// Загрузка списка из массива строк
|
// Загрузка списка из массива строк
|
||||||
public void LoadData(String[] records)
|
public void LoadData(String[] records) throws StorageOverflowException
|
||||||
{
|
{
|
||||||
for (var rec : records)
|
for (var rec : records)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -9,6 +10,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
|
|
||||||
public class MapsCollection {
|
public class MapsCollection {
|
||||||
@@ -112,7 +115,7 @@ public class MapsCollection {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
/// Сохранение информации по тракторам в хранилище в файл
|
/// Сохранение информации по тракторам в хранилище в файл
|
||||||
public boolean SaveData(String filename) {
|
public void SaveData(String filename) {
|
||||||
File file = new File(filename);
|
File file = new File(filename);
|
||||||
|
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
@@ -127,14 +130,13 @@ public class MapsCollection {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
/// Загрузка информации по тракторам в депо из файла
|
/// Загрузка информации по машинам в депо из файла
|
||||||
public boolean LoadData(String filename)
|
public void LoadData(String filename) throws FileNotFoundException
|
||||||
{
|
{
|
||||||
if (!(new File(filename).exists()))
|
if (!(new File(filename).exists()))
|
||||||
{
|
{
|
||||||
return false;
|
throw new FileNotFoundException("Файл не найден");
|
||||||
}
|
}
|
||||||
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
|
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
|
||||||
{
|
{
|
||||||
@@ -142,7 +144,7 @@ public class MapsCollection {
|
|||||||
if ((str = br.readLine()) == null || !str.contains("MapsCollection"))
|
if ((str = br.readLine()) == null || !str.contains("MapsCollection"))
|
||||||
{
|
{
|
||||||
//если нет такой записи, то это не те данные
|
//если нет такой записи, то это не те данные
|
||||||
return false;
|
throw new IllegalArgumentException("Формат данных в файле неправильный");
|
||||||
}
|
}
|
||||||
//очищаем записи
|
//очищаем записи
|
||||||
_mapStorages.clear();
|
_mapStorages.clear();
|
||||||
@@ -168,7 +170,9 @@ public class MapsCollection {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
return true;
|
catch (StorageOverflowException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public boolean SaveMap(String filename, String index) {
|
public boolean SaveMap(String filename, String index) {
|
||||||
File file = new File(filename);
|
File file = new File(filename);
|
||||||
@@ -183,12 +187,14 @@ public class MapsCollection {
|
|||||||
br.write("MapsCollection\n");
|
br.write("MapsCollection\n");
|
||||||
br.write(index + separatorDict);
|
br.write(index + separatorDict);
|
||||||
br.write(elem.GetDataMap(separatorDict, separatorData));
|
br.write(elem.GetDataMap(separatorDict, separatorData));
|
||||||
} catch (IOException e) {
|
}
|
||||||
|
catch (IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public boolean LoadMap(String filename) {
|
public boolean LoadMap(String filename) throws StorageOverflowException {
|
||||||
if (!(new File(filename).exists()))
|
if (!(new File(filename).exists()))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -18,51 +18,27 @@ public class SetArmoredCarsGeneric<T> implements Iterable<T>{
|
|||||||
_places.clear();
|
_places.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Insert(T armoredCar)
|
public int Insert(T armoredCar) throws StorageOverflowException
|
||||||
{
|
{
|
||||||
if(_places.size()+1 <= _MaxCount) return Insert(armoredCar, 0);
|
if(_places.size()+1 <= _MaxCount) return Insert(armoredCar, 0);
|
||||||
else return -1;
|
else return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Insert(T armoredCar, int position)
|
public int Insert(T armoredCar, int position) throws StorageOverflowException
|
||||||
{
|
{
|
||||||
if ((position < 0 || position > getCount()))
|
if ((position < 0 || position > getCount()))
|
||||||
return -1;
|
return -1;
|
||||||
// if(_places.isEmpty())
|
|
||||||
// {
|
|
||||||
// _places.add(armoredCar);
|
|
||||||
// return 0;
|
|
||||||
// }
|
|
||||||
// if ((_places.get(position) != null) && !_places.isEmpty())
|
|
||||||
// {
|
|
||||||
// int index_empty = -1;
|
|
||||||
// // поиск первого пустого элемента
|
|
||||||
// for (int i = position + 1; i < _MaxCount; i++)
|
|
||||||
// {
|
|
||||||
// if (_places.get(i) == null)
|
|
||||||
// {
|
|
||||||
// index_empty = i;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (index_empty == -1)
|
|
||||||
// return -1;
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// for (int i = index_empty; i > position; i--)
|
|
||||||
// {
|
|
||||||
// _places.set(i, _places.get(i-1));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
_places.add(position, armoredCar);
|
_places.add(position, armoredCar);
|
||||||
|
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
public T Remove(int position)
|
public T Remove(int position) throws MachineNotFoundException
|
||||||
{
|
{
|
||||||
if (position < 0 || position >= getCount() || _places.get(position) == null)
|
if (position < 0 || position >= getCount())
|
||||||
return null;
|
throw new MachineNotFoundException(position);
|
||||||
|
if (_places.get(position) == null)
|
||||||
|
throw new MachineNotFoundException(position);
|
||||||
T armoredCar = _places.get(position);
|
T armoredCar = _places.get(position);
|
||||||
_places.set(position, null);
|
_places.set(position, null);
|
||||||
|
|
||||||
@@ -78,7 +54,11 @@ public class SetArmoredCarsGeneric<T> implements Iterable<T>{
|
|||||||
public void Set(int position, T value){
|
public void Set(int position, T value){
|
||||||
if (position < 0 || position + 1 >= getCount())
|
if (position < 0 || position + 1 >= getCount())
|
||||||
return;
|
return;
|
||||||
|
try {
|
||||||
Insert(value, position);
|
Insert(value, position);
|
||||||
|
} catch (StorageOverflowException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
5
ArmoredVehicle/src/StorageOverflowException.java
Normal file
5
ArmoredVehicle/src/StorageOverflowException.java
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
public class StorageOverflowException extends Exception {
|
||||||
|
public StorageOverflowException(int count){
|
||||||
|
super("В наборе превышено допустимое количество: "+count);
|
||||||
|
}
|
||||||
|
}
|
||||||
9
ArmoredVehicle/src/log.config
Normal file
9
ArmoredVehicle/src/log.config
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
handlers = java.util.logging.FileHandler
|
||||||
|
|
||||||
|
java.util.logging.FileHandler.level = INFO
|
||||||
|
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
|
||||||
|
java.util.logging.FileHandler.append = true
|
||||||
|
java.util.logging.FileHandler.pattern = log.txt
|
||||||
|
|
||||||
|
java.util.logging.ConsoleHandler.level = INFO
|
||||||
|
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
|
||||||
Reference in New Issue
Block a user