From 0e2779eb1e59c0d564429af37cfac104f4ea8819 Mon Sep 17 00:00:00 2001 From: Kankistodor <153865585+Kankistodor@users.noreply.github.com> Date: Thu, 25 Apr 2024 10:39:26 +0400 Subject: [PATCH] lab3 ready --- ProjectElectroTrans/Drawnings.zip | Bin 0 -> 154 bytes .../Drawnings/DrawningElectroTrans.java | 71 +++++++ .../Drawnings/DrawningRectWheels.java | 27 +++ .../Drawnings/DrawningTrans.java | 149 ++++++++++++++ .../Drawnings/DrawningTriangleWheels.java | 0 .../Drawnings/DrawningWheels.java | 27 +++ .../Drawnings/IDrawWheels.java | 8 + .../Drawnings/WheelsCount.java | 16 ++ .../AbstractCompany.java | 60 ++++++ .../CollectionGenericObjects/Constructor.java | 53 +++++ .../ICollectionGenericObjects.java | 17 ++ .../MassiveGenericObjects.java | 91 +++++++++ .../TransSharingService.java | 63 ++++++ .../Drawnings/DrawningAbstractCompany.java | 127 ++++++++++++ .../src/Drawnings/DrawningConstructor.java | 84 ++++++++ .../src/Drawnings/DrawningElectroTrans.java | 38 +++- .../src/Drawnings/DrawningFormCatamaran.java | 71 +++++++ .../src/Drawnings/DrawningRectWheels.java | 21 +- .../Drawnings/DrawningRectangleWheels.java | 35 ++++ .../src/Drawnings/DrawningTrans.java | 59 +++--- .../src/Drawnings/DrawningWheels.java | 22 ++- .../src/Drawnings/WheelsCount.java | 1 - .../src/Entities/EntityElectroTrans.java | 42 ++-- .../src/Entities/EntityTrans.java | 21 +- ProjectElectroTrans/src/FormElectroTrans.form | 131 ------------- ProjectElectroTrans/src/FormElectroTrans.java | 183 ------------------ .../src/Forms/FormConstructor.java | 92 +++++++++ .../src/Forms/FormElectroTrans.java | 113 +++++++++++ .../src/Forms/FormTransCollection.java | 164 ++++++++++++++++ ProjectElectroTrans/src/Main.java | 18 +- .../MovementStrategy/AbstractStrategy.java | 3 + .../src/MovementStrategy/MoveToBorder.java | 7 +- .../src/MovementStrategy/MoveToCenter.java | 4 +- .../src/MovementStrategy/MoveableTrans.java | 7 +- .../MovementStrategy/ObjectParameters.java | 1 - .../AbstractCompany.class | Bin 0 -> 2461 bytes .../Constructor.class | Bin 0 -> 2666 bytes .../ICollectionGenericObjects.class | Bin 0 -> 490 bytes .../MassiveGenericObjects.class | Bin 0 -> 2572 bytes .../TransSharingService.class | Bin 0 -> 2601 bytes .../Drawnings/DrawningAbstractCompany.class | Bin 0 -> 5849 bytes .../Drawnings/DrawningConstructor.class | Bin 0 -> 2773 bytes .../Drawnings/DrawningElectroTrans.class | Bin 0 -> 3529 bytes .../Drawnings/DrawningFormCatamaran.class | Bin 0 -> 2507 bytes .../Drawnings/DrawningRectWheels.class | Bin 0 -> 2027 bytes .../Drawnings/DrawningRectangleWheels.class | Bin 0 -> 2113 bytes .../Drawnings/DrawningTrans$1.class | Bin 0 -> 817 bytes .../Drawnings/DrawningTrans.class | Bin 0 -> 5013 bytes .../Drawnings/DrawningWheels.class | Bin 0 -> 1982 bytes .../Drawnings/IDrawWheels.class | Bin 0 -> 206 bytes .../Drawnings/WheelsCount.class | Bin 0 -> 1297 bytes .../Entities/EntityElectroTrans.class | Bin 0 -> 2069 bytes .../Entities/EntityTrans.class | Bin 0 -> 2018 bytes .../Forms/FormConstructor$1.class | Bin 0 -> 1086 bytes .../Forms/FormConstructor.class | Bin 0 -> 4238 bytes .../Forms/FormElectroTrans$1.class | Bin 0 -> 1418 bytes .../Forms/FormElectroTrans.class | Bin 0 -> 5326 bytes .../Forms/FormTransCollection$1.class | Bin 0 -> 1714 bytes .../Forms/FormTransCollection.class | Bin 0 -> 7385 bytes out/production/ProjectElectroTrans/Main.class | Bin 0 -> 495 bytes .../MovementStrategy/AbstractStrategy.class | Bin 0 -> 2267 bytes .../MovementStrategy/IMoveableObject.class | Bin 0 -> 349 bytes .../MovementStrategy/MoveToBorder.class | Bin 0 -> 1199 bytes .../MovementStrategy/MoveToCenter.class | Bin 0 -> 1274 bytes .../MovementStrategy/MoveableTrans.class | Bin 0 -> 1452 bytes .../MovementStrategy/MovementDirection.class | Bin 0 -> 1232 bytes .../MovementStrategy/ObjectParameters.class | Bin 0 -> 1024 bytes .../MovementStrategy/StrategyStatus.class | Bin 0 -> 1172 bytes .../ProjectElectroTrans/arrowDown.png | Bin 0 -> 965 bytes .../ProjectElectroTrans/arrowLeft.png | Bin 0 -> 1005 bytes .../ProjectElectroTrans/arrowRight.png | Bin 0 -> 978 bytes .../ProjectElectroTrans/arrowUp.png | Bin 0 -> 1012 bytes 72 files changed, 1403 insertions(+), 423 deletions(-) create mode 100644 ProjectElectroTrans/Drawnings.zip create mode 100644 ProjectElectroTrans/Drawnings/DrawningElectroTrans.java create mode 100644 ProjectElectroTrans/Drawnings/DrawningRectWheels.java create mode 100644 ProjectElectroTrans/Drawnings/DrawningTrans.java rename ProjectElectroTrans/{src => }/Drawnings/DrawningTriangleWheels.java (100%) create mode 100644 ProjectElectroTrans/Drawnings/DrawningWheels.java create mode 100644 ProjectElectroTrans/Drawnings/IDrawWheels.java create mode 100644 ProjectElectroTrans/Drawnings/WheelsCount.java create mode 100644 ProjectElectroTrans/src/CollectionGenericObjects/AbstractCompany.java create mode 100644 ProjectElectroTrans/src/CollectionGenericObjects/Constructor.java create mode 100644 ProjectElectroTrans/src/CollectionGenericObjects/ICollectionGenericObjects.java create mode 100644 ProjectElectroTrans/src/CollectionGenericObjects/MassiveGenericObjects.java create mode 100644 ProjectElectroTrans/src/CollectionGenericObjects/TransSharingService.java create mode 100644 ProjectElectroTrans/src/Drawnings/DrawningAbstractCompany.java create mode 100644 ProjectElectroTrans/src/Drawnings/DrawningConstructor.java create mode 100644 ProjectElectroTrans/src/Drawnings/DrawningFormCatamaran.java create mode 100644 ProjectElectroTrans/src/Drawnings/DrawningRectangleWheels.java delete mode 100644 ProjectElectroTrans/src/FormElectroTrans.form delete mode 100644 ProjectElectroTrans/src/FormElectroTrans.java create mode 100644 ProjectElectroTrans/src/Forms/FormConstructor.java create mode 100644 ProjectElectroTrans/src/Forms/FormElectroTrans.java create mode 100644 ProjectElectroTrans/src/Forms/FormTransCollection.java create mode 100644 out/production/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.class create mode 100644 out/production/ProjectElectroTrans/CollectionGenericObjects/Constructor.class create mode 100644 out/production/ProjectElectroTrans/CollectionGenericObjects/ICollectionGenericObjects.class create mode 100644 out/production/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.class create mode 100644 out/production/ProjectElectroTrans/CollectionGenericObjects/TransSharingService.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningAbstractCompany.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningConstructor.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningElectroTrans.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningFormCatamaran.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningRectWheels.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningRectangleWheels.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningTrans$1.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningTrans.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/DrawningWheels.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/IDrawWheels.class create mode 100644 out/production/ProjectElectroTrans/Drawnings/WheelsCount.class create mode 100644 out/production/ProjectElectroTrans/Entities/EntityElectroTrans.class create mode 100644 out/production/ProjectElectroTrans/Entities/EntityTrans.class create mode 100644 out/production/ProjectElectroTrans/Forms/FormConstructor$1.class create mode 100644 out/production/ProjectElectroTrans/Forms/FormConstructor.class create mode 100644 out/production/ProjectElectroTrans/Forms/FormElectroTrans$1.class create mode 100644 out/production/ProjectElectroTrans/Forms/FormElectroTrans.class create mode 100644 out/production/ProjectElectroTrans/Forms/FormTransCollection$1.class create mode 100644 out/production/ProjectElectroTrans/Forms/FormTransCollection.class create mode 100644 out/production/ProjectElectroTrans/Main.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/AbstractStrategy.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/IMoveableObject.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/MoveToBorder.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/MoveToCenter.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/MoveableTrans.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/MovementDirection.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/ObjectParameters.class create mode 100644 out/production/ProjectElectroTrans/MovementStrategy/StrategyStatus.class create mode 100644 out/production/ProjectElectroTrans/arrowDown.png create mode 100644 out/production/ProjectElectroTrans/arrowLeft.png create mode 100644 out/production/ProjectElectroTrans/arrowRight.png create mode 100644 out/production/ProjectElectroTrans/arrowUp.png diff --git a/ProjectElectroTrans/Drawnings.zip b/ProjectElectroTrans/Drawnings.zip new file mode 100644 index 0000000000000000000000000000000000000000..d3418e16a1f89fe8f1ab7110890523b3e1cf1788 GIT binary patch literal 154 zcmWIWW@Zs#0D)_vH4$J2l;8r=E=7sud6{|X#rgr>j7%a7xKye@^$0*|gg!0?1+W++ hg9O9my&)TKH{4=`DuPo1-mGjO4kHl80BH@d3;=2b6LkOp literal 0 HcmV?d00001 diff --git a/ProjectElectroTrans/Drawnings/DrawningElectroTrans.java b/ProjectElectroTrans/Drawnings/DrawningElectroTrans.java new file mode 100644 index 0000000..972cf7b --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningElectroTrans.java @@ -0,0 +1,71 @@ +package Drawnings; + +import Entities.EntityElectroTrans; + +import java.awt.*; + +public class DrawningElectroTrans extends DrawningTrans { + private EntityElectroTrans entityElectroTrans; + + public DrawningElectroTrans(int speed, float weight, Color bodyColor, int wheelsType, Color additionalColor, boolean horns, boolean battery) { + super(speed, weight, bodyColor, wheelsType, 110, 60); + entityElectroTrans = new EntityElectroTrans(speed, weight, bodyColor, additionalColor, horns, battery); + } + + public void drawTrans(Graphics g) { + if (entityElectroTrans == null || _startPosX == null || _startPosY == null) { + return; + } + super.drawTrans(g); + Graphics2D g2d = (Graphics2D) g; + + Point[] electroTransHorns; + if (entityElectroTrans.getHorns()) { + electroTransHorns = new Point[]{ + new Point(_startPosX + 40, _startPosY + 10), + new Point(_startPosX + 20, _startPosY), + new Point(_startPosX + 60, _startPosY), + + }; + } else { + electroTransHorns = new Point[]{ + new Point(_startPosX + 40, _startPosY + 7), + new Point(_startPosX + 20, _startPosY + 7), + new Point(_startPosX + 60, _startPosY + 7), + + }; + } + + Polygon electroTransHornsPolygon = new Polygon(); + for (Point point : electroTransHorns) + electroTransHornsPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityElectroTrans.getAdditionalColor()); + g2d.drawPolygon(electroTransHornsPolygon); + + + if (entityElectroTrans.getBattery()) { + Point[] electroTransBattery = new Point[]{ + new Point(_startPosX + 25, _startPosY + 32), + new Point(_startPosX + 25, _startPosY + 36), + new Point(_startPosX + 22, _startPosY + 36), + new Point(_startPosX + 22, _startPosY + 40), + new Point(_startPosX + 25, _startPosY + 40), + new Point(_startPosX + 25, _startPosY + 46), + new Point(_startPosX + 58, _startPosY + 46), + new Point(_startPosX + 58, _startPosY + 32), + + }; + Polygon electroTransBatteryPolygon = new Polygon(); + for (Point point : electroTransBattery) + electroTransBatteryPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityElectroTrans.getAdditionalColor()); + g2d.fillPolygon(electroTransBatteryPolygon); + + } + + } + +} + diff --git a/ProjectElectroTrans/Drawnings/DrawningRectWheels.java b/ProjectElectroTrans/Drawnings/DrawningRectWheels.java new file mode 100644 index 0000000..b1c7bb2 --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningRectWheels.java @@ -0,0 +1,27 @@ +package Drawnings; + +import java.awt.*; + +public class DrawningRectWheels implements IDrawWheels { + private WheelsCount wheelsCount; + + @Override + public void setNumber(int wheelCount) { + for (WheelsCount value : WheelsCount.values()) { + if (value.getEnumNumber() == wheelCount) { + wheelsCount = value; + return; + } + } + } + + @Override + public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { + g2d.setColor(color); + g2d.setStroke(new BasicStroke(4)); + int wheelDistance = 100 / wheelsCount.getEnumNumber(); + for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + g2d.drawRect(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); + } + } +} diff --git a/ProjectElectroTrans/Drawnings/DrawningTrans.java b/ProjectElectroTrans/Drawnings/DrawningTrans.java new file mode 100644 index 0000000..c302fab --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningTrans.java @@ -0,0 +1,149 @@ +package Drawnings; + +import Entities.*; +import MovementStrategy.*; +import java.awt.*; +import java.util.Random; + +public class DrawningTrans { + private final EntityTrans entityTran; + + public EntityTrans getEntityTrans() { + return entityTran; + } + private Integer _pictureWidth; + private Integer _pictureHeight; + protected Integer _startPosX; + protected Integer _startPosY; + private int _drawingTransWidth = 110; + private int _drawingTransHeight = 60; + public int GetPosX(){return _startPosX;} + public int GetPosY(){return _startPosY;} + public int GetWidth(){return _drawingTransWidth;} + public int GetHeight(){return _drawingTransHeight;} + private IDrawWheels drawWheels; + + public DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType) { + entityTran = new EntityTrans(speed, weight, bodyColor); + _startPosY = null; + _startPosX = null; + _pictureWidth = null; + _pictureHeight = null; + switch (wheelsType) { + case 0: + drawWheels = new DrawningWheels(); + break; + case 1: + drawWheels = new DrawningTriangleWheels(); + break; + case 2: + drawWheels = new DrawningRectWheels(); + break; + } + Random random = new Random(); + int wheelsCount = random.nextInt(1, 4); + System.out.print(wheelsCount); + drawWheels.setNumber(wheelsCount); + + } + + protected DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType, int transWidth, int transHeight) { + this(speed, weight, bodyColor, wheelsType); + _drawingTransHeight = transHeight; + _drawingTransWidth = transWidth; + + } + public void setPosition(int x, int y) { + if (_pictureHeight == null || _pictureWidth == null) + return; + _startPosX = x; + _startPosY = y; + + if (_drawingTransWidth + x > _pictureWidth || x < 0) { + _startPosX = 0; + } + if (_drawingTransHeight + y > _pictureHeight || y < 0) { + _startPosY = 0; + } + } + public boolean setPictureSize(int width, int height) { + + if (_drawingTransHeight > height || _drawingTransWidth > width) + return false; + _pictureHeight = height; + _pictureWidth = width; + + if (_startPosX != null && _startPosY != null) + { + if (_startPosX + _drawingTransWidth > width) + _startPosX = width - _drawingTransWidth; + if (_startPosY + _drawingTransHeight > height) + _startPosY = height - _drawingTransHeight; + } + + return true; + } + + public boolean moveTransport(MovementDirection direction) { + if (entityTran == null || _pictureWidth == null || _pictureHeight == null) + return false; + switch (direction) { + case MovementDirection.Left: + if (_startPosX - entityTran.getStep() > 0) + _startPosX -= (int) entityTran.getStep(); + return true; + case MovementDirection.Up: + if (_startPosY - entityTran.getStep() > 0) + _startPosY -= (int) entityTran.getStep(); + return true; + case MovementDirection.Right: + if (_startPosX + entityTran.getStep() < _pictureWidth - _drawingTransWidth) + _startPosX += (int) entityTran.getStep(); + return true; + case MovementDirection.Down: + if (_startPosY + entityTran.getStep() < _pictureHeight - _drawingTransHeight) + _startPosY += (int) entityTran.getStep(); + return true; + default: + return false; + } + } + public void drawTrans(Graphics g) { + if (entityTran == null || _startPosX == null || _startPosY == null) { + return; + } + + Graphics2D g2d = (Graphics2D) g; + + Point[] electroTransBorders = new Point[]{ + new Point(_startPosX, _startPosY + 30), + new Point(_startPosX + 10, _startPosY + 10), + new Point(_startPosX + 70, _startPosY + 10), + new Point(_startPosX + 80, _startPosY + 30), + new Point(_startPosX + 80, _startPosY + 50), + new Point(_startPosX, _startPosY + 50), + }; + Polygon electroTransPolygon = new Polygon(); + for (Point point : electroTransBorders) + electroTransPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityTran.getBodyColor()); + g2d.drawPolygon(electroTransPolygon); + + Point[] electroTransGlass = new Point[]{ + new Point(_startPosX + 2, _startPosY + 30), + new Point(_startPosX + 10, _startPosY + 13), + new Point(_startPosX + 70, _startPosY + 13), + new Point(_startPosX + 78, _startPosY + 30), + }; + + Polygon electroTransGlassPolygon = new Polygon(); + for (Point point : electroTransGlass) + electroTransGlassPolygon.addPoint(point.x, point.y); + + g2d.setColor(entityTran.getBodyColor()); + g2d.drawPolygon(electroTransGlassPolygon); + + drawWheels.drawWheels(g2d, entityTran.getBodyColor(), _startPosX, _startPosY); + } +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Drawnings/DrawningTriangleWheels.java b/ProjectElectroTrans/Drawnings/DrawningTriangleWheels.java similarity index 100% rename from ProjectElectroTrans/src/Drawnings/DrawningTriangleWheels.java rename to ProjectElectroTrans/Drawnings/DrawningTriangleWheels.java diff --git a/ProjectElectroTrans/Drawnings/DrawningWheels.java b/ProjectElectroTrans/Drawnings/DrawningWheels.java new file mode 100644 index 0000000..826f625 --- /dev/null +++ b/ProjectElectroTrans/Drawnings/DrawningWheels.java @@ -0,0 +1,27 @@ +package Drawnings; + +import java.awt.*; + +public class DrawningWheels implements IDrawWheels { + private WheelsCount wheelsCount; + + @Override + public void setNumber(int wheelCount) { + for (WheelsCount value : WheelsCount.values()) { + if (value.getEnumNumber() == wheelCount) { + wheelsCount = value; + return; + } + } + } + + @Override + public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { + g2d.setColor(color); + g2d.setStroke(new BasicStroke(4)); + int wheelDistance = 100 / wheelsCount.getEnumNumber(); + for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + g2d.drawOval(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); + } + } +} diff --git a/ProjectElectroTrans/Drawnings/IDrawWheels.java b/ProjectElectroTrans/Drawnings/IDrawWheels.java new file mode 100644 index 0000000..c1b4355 --- /dev/null +++ b/ProjectElectroTrans/Drawnings/IDrawWheels.java @@ -0,0 +1,8 @@ +package Drawnings; + +import java.awt.*; + +public interface IDrawWheels { + void setNumber(int x); + void drawWheels(Graphics2D graphics2D, Color color, int _startX, int _startY); +} diff --git a/ProjectElectroTrans/Drawnings/WheelsCount.java b/ProjectElectroTrans/Drawnings/WheelsCount.java new file mode 100644 index 0000000..483d4da --- /dev/null +++ b/ProjectElectroTrans/Drawnings/WheelsCount.java @@ -0,0 +1,16 @@ +package Drawnings; + +public enum WheelsCount { + Two(2), + Three(3), + Four(4); + + final private int EnumNumber; + WheelsCount(int enumNumber) { + EnumNumber = enumNumber; + } + public int getEnumNumber() { + return EnumNumber; + } + +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/AbstractCompany.java b/ProjectElectroTrans/src/CollectionGenericObjects/AbstractCompany.java new file mode 100644 index 0000000..629ddf1 --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/AbstractCompany.java @@ -0,0 +1,60 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; + +import java.awt.*; +import java.util.Random; + +public abstract class AbstractCompany { + protected final int _placeSizeWidth = 210; + protected final int _placeSizeHeight = 120; + protected final int _pictureWidth; + protected final int _pictureHeight; + protected ICollectionGenericObjects _collection = null; + public int getMaxCount() { + return _pictureWidth * _pictureHeight / (_placeSizeWidth*_placeSizeHeight); + } + public AbstractCompany(int picWidth, int picHeight, ICollectionGenericObjects collection) { + this._pictureWidth = picWidth; + this._pictureHeight = picHeight; + this._collection = collection; + int maxCount = getMaxCount(); + _collection.setMaxCount(maxCount); + } + public static int add(AbstractCompany company ,DrawningTrans trans) { + if (company._collection == null) { + return -1; + } + return company._collection.insert(trans); + } + + public static DrawningTrans remove(AbstractCompany company, int position) { + if (company._collection == null) { + return null; + } + return company._collection.remove(position); + } + public DrawningTrans getRandomObject() { + if (_collection == null) { + return null; + } + Random rnd = new Random(); + return _collection.get(rnd.nextInt(0, _collection.getCount() + 1)); + } + public void show(Graphics g) { + drawBackground(g); + setObjectsPosition(); + if (_collection == null) { + return; + } + for(int i = 0; i < _collection.getCount(); i++) { + if(_collection.get(i) != null) { + _collection.get(i).drawTrans(g); + } + } + } + protected abstract void drawBackground(Graphics g); + protected abstract void setObjectsPosition(); + + +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/Constructor.java b/ProjectElectroTrans/src/CollectionGenericObjects/Constructor.java new file mode 100644 index 0000000..b6090ba --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/Constructor.java @@ -0,0 +1,53 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; +import Drawnings.DrawningElectroTrans; +import Drawnings.IDrawWheels; +import Entities.EntityTrans; +import Entities.EntityElectroTrans; + +import java.util.ArrayList; +import java.util.Random; + +public class Constructor { + private ArrayList entitiesList = new ArrayList<>(); + private ArrayList wheelsList = new ArrayList<>(); + public void addTrans(T obj) { + entitiesList.add(obj); + } + public void addTrans(U obj) { + wheelsList.add(obj); + } + + public DrawningTrans getRandomTrans() { + Random rnd = new Random(); + int entityIndex = rnd.nextInt(0, 3); + int wheelsIndex = rnd.nextInt(0, 3); + + T entity = entitiesList.get(entityIndex); + U wheels = wheelsList.get(wheelsIndex); + + return (entity instanceof EntityElectroTrans) ? + new DrawningElectroTrans((EntityElectroTrans) entity, wheels) : + new DrawningTrans(entity, wheels); + } + + public String getEntityDescription(int index) { + if (index < 0 || index >= entitiesList.size()) { + return null; + } + + T entity = entitiesList.get(index); + String entityClassName = (entity instanceof EntityElectroTrans) ? "EntityElectroTrans" : "EntityTrans"; + + return String.format("%s = %s", entityClassName, entity); + } + + public String getPaddlesDescription(int index) { + if (index < 0 || index >= wheelsList.size()) { + return null; + } + return wheelsList.get(index).toString(); + } + +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/ICollectionGenericObjects.java b/ProjectElectroTrans/src/CollectionGenericObjects/ICollectionGenericObjects.java new file mode 100644 index 0000000..8f7e1f8 --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/ICollectionGenericObjects.java @@ -0,0 +1,17 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; + +public interface ICollectionGenericObjects { + int getCount(); + + void setMaxCount(int count); + + int insert(T obj); + + int insert(T obj, int index); + + T remove(int index); + + T get(int index); +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/MassiveGenericObjects.java b/ProjectElectroTrans/src/CollectionGenericObjects/MassiveGenericObjects.java new file mode 100644 index 0000000..5c5df3e --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/MassiveGenericObjects.java @@ -0,0 +1,91 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; +import java.util.ArrayList; + +public class MassiveGenericObjects implements ICollectionGenericObjects { + private ArrayList _collection; + public MassiveGenericObjects() { + _collection = new ArrayList<>(); + + } + int maxCount = 0; + int realSize = 0; + @Override + public int getCount() { + return _collection.size(); + } + @Override + public int insert(T obj) { + return insert(obj, 0); + } + + @Override + public int insert(T obj, int position) { + if (position > maxCount|| position < 0) { + return -1; + } + + for (int i = position; i < maxCount; i++) { + if (_collection.get(i) == null) { + _collection.set(i, obj); + realSize++; + return i; + } + } + for (int i = position; i > 0; i--) { + if (_collection.get(i) == null) { + _collection.set(i, obj); + realSize++; + return i; + } + } + return -1; + } + + @Override + public T remove(int position) { + if (position < 0 || position >= maxCount) { + return null; + } + if (_collection.get(position) != null) { + T bf = _collection.get(position); + _collection.set(position, null); + --realSize; + return bf; + } + return null; + } + + @Override + public T get(int position) { + if (position >= 0 && position < _collection.size()) { + return _collection.get(position); + } + else { + return null; + } + } + + @Override + public void setMaxCount(int count) { + if (count > 0) { + if (!_collection.isEmpty()) { + ArrayList bfLoc = new ArrayList<>(count); + bfLoc.addAll(0, _collection); + _collection = bfLoc; + for (int i = 0; i < count - maxCount; i++) { + _collection.add(null); + } + } else { + _collection = new ArrayList<>(count); + for (int i = 0; i < count; i++) { + _collection.add(null); + } + + } + maxCount = count; + + } + } +} diff --git a/ProjectElectroTrans/src/CollectionGenericObjects/TransSharingService.java b/ProjectElectroTrans/src/CollectionGenericObjects/TransSharingService.java new file mode 100644 index 0000000..40a3093 --- /dev/null +++ b/ProjectElectroTrans/src/CollectionGenericObjects/TransSharingService.java @@ -0,0 +1,63 @@ +package CollectionGenericObjects; + +import Drawnings.DrawningTrans; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + +public class TransSharingService extends AbstractCompany { + private final List locCoord = new ArrayList<>(); + private int numRows, numCols; + public TransSharingService(int picWidth, int picHeight, ICollectionGenericObjects collection) { + super(picWidth, picHeight, collection); + _collection.setMaxCount(30); + + } + @Override + protected void drawBackground(Graphics g) { + Color backgroundColor = new Color(135, 206, 235); + + g.setColor(backgroundColor); + g.fillRect(0, 0, _pictureWidth, _pictureHeight); + + g.setColor(new Color(165, 42, 42)); // Brown + int offsetX = 10, offsetY = -5; + int x = 1 + offsetX, y = _pictureHeight - _placeSizeHeight + offsetY; + numRows = 0; + while (y >= 0) { + int numCols = 0; + while (x + _placeSizeWidth <= _pictureWidth) { + numCols++; + g.drawLine(x, y, x + _placeSizeWidth / 2, y); + g.drawLine(x, y, x, y + _placeSizeHeight + 4); + locCoord.add(new Point(x, y)); + x += _placeSizeWidth + 2; + } + numRows++; + x = 1 + offsetX; + y -= _placeSizeHeight + 5 + offsetY; + } + + } + + @Override + protected void setObjectsPosition() { + if (locCoord == null || _collection == null) { + return; + } + int row = numRows - 1, col = numCols; + for (int i=0;i< _collection.getCount(); i++, col--) { + if (_collection.get(i) != null) { + _collection.get(i).setPictureSize(_pictureWidth, _pictureHeight); + _collection.get(i).setPosition((int)locCoord.get(row*numCols - col).getX() + 5, + (int)locCoord.get(row*numCols - col).getY() + 9); + if (col == 1) { + col = numCols + 1; + row--; + } + } + + } + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningAbstractCompany.java b/ProjectElectroTrans/src/Drawnings/DrawningAbstractCompany.java new file mode 100644 index 0000000..c0ef58e --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningAbstractCompany.java @@ -0,0 +1,127 @@ +package Drawnings; + +import CollectionGenericObjects.AbstractCompany; +import CollectionGenericObjects.MassiveGenericObjects; +import CollectionGenericObjects.TransSharingService; +import Forms.FormConstructor; +import Forms.FormElectroTrans; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.WindowEvent; +import java.util.Random; + +public class DrawningAbstractCompany extends JComponent { + private AbstractCompany _company = null; + public void collectionComboBox_SelectedIndexChanged(JComboBox obj, int width, int height) { + switch (obj.getSelectedIndex()) { + case 1: + _company = new TransSharingService(width, height, new MassiveGenericObjects()); + break; + default: + break; + } + } + public void createObject(int type, JFrame obj) { + if (_company == null) { + return; + } + DrawningTrans _drawningTrans; + Random random = new Random(); + switch (type) { + case 0: + _drawningTrans = new DrawningTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, + getColorR(obj, random), random.nextInt(3)); + break; + case 1: + _drawningTrans = new DrawningElectroTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, + getColorR(obj, random), random.nextInt(3), + getColorR(obj, random), + random.nextBoolean(), random.nextBoolean()); + break; + default: + return; + } + if (AbstractCompany.add(_company, _drawningTrans) != -1) { + JOptionPane.showMessageDialog(obj, "Объект добавлен"); + } + else { + JOptionPane.showMessageDialog(obj, "Не удалось добавить объект"); + } + } + Color getColorR(JFrame obj, Random rnd) { + Color color = new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)); + if (obj == null) { + return color; + } + JColorChooser colorChooser = new JColorChooser(); + colorChooser.setColor(color); + return JColorChooser.showDialog(obj, "Выберите цвет", color); + } + + public void deleteButtonAction(int val, Frame obj) { + if (_company == null) { + return; + } + int result = JOptionPane.showConfirmDialog( + obj, + "Удалить объект?", + "Подтвердение", + JOptionPane.YES_NO_OPTION); + if (result == JOptionPane.YES_OPTION) { + if (AbstractCompany.remove(_company, val) != null) { + JOptionPane.showMessageDialog(obj, "Выполнено"); + } else { + JOptionPane.showMessageDialog(obj, "Удаление не удалось"); + } + } + } + public void goToCheckButtonAction() { + if (_company == null) { + return; + } + DrawningTrans trans = null; + int counter = 100; + while (trans == null && counter > 0) { + trans = _company.getRandomObject(); + --counter; + } + if (trans == null) { + return; + } + FormElectroTrans formElectroTrans = new FormElectroTrans(); + formElectroTrans.setDrawningTrans(trans); + formElectroTrans.OpenFrame(); + + + } + + private DrawningTrans createObject; + public void getObjFromConstructor(JFrame obj) { + if (_company == null) { + return; + } + FormConstructor formConstructor = new FormConstructor(); + formConstructor.OpenFrame(); + + formConstructor.getAddButton().addActionListener(e -> { + createObject = formConstructor.getConstructor().getObj(); + if (AbstractCompany.add(_company, createObject) != -1) { + JOptionPane.showMessageDialog(obj, "Выполнено"); + + } else { + JOptionPane.showMessageDialog(obj, "Добавление не удалось"); + } + obj.repaint(); + formConstructor.getjFrameConstructor().dispatchEvent(new WindowEvent(formConstructor.getjFrameConstructor(), WindowEvent.WINDOW_CLOSING)); + }); + } + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + if (_company == null) { + return; + } + _company.show(g); + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningConstructor.java b/ProjectElectroTrans/src/Drawnings/DrawningConstructor.java new file mode 100644 index 0000000..4536365 --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningConstructor.java @@ -0,0 +1,84 @@ +package Drawnings; + +import CollectionGenericObjects.Constructor; +import Entities.EntityTrans; +import Entities.EntityElectroTrans; + +import javax.swing.*; +import java.awt.*; +import java.util.Random; + +public class DrawningConstructor extends JComponent { + + Constructor constructor = new Constructor<>(); + private DrawningTrans obj; + + public DrawningTrans getObj() { + return obj; + } + + public DrawningConstructor() { + for (int i = 0; i < 3; i++) { + EntityTrans _entityBoat = null; + IDrawWheels _drawWheels = null; + Random rnd = new Random(); + int wheelsType = rnd.nextInt(3); + switch (wheelsType) { + case 0: + _drawWheels = new DrawningWheels(); + break; + case 1: + _drawWheels = new DrawningRectWheels(); + break; + case 2: + _drawWheels = new DrawningRectangleWheels(); + break; + } + int wheelsCount = rnd.nextInt(1, 4); + _drawWheels.setNumber(wheelsCount); + + int typeBoat = rnd.nextInt(0, 2); + + switch (typeBoat) { + case 0: + _entityBoat = new EntityTrans(rnd.nextInt(70 - 30) + 30, rnd.nextInt(500 - 100) + 100, + new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256))); + break; + case 1: + _entityBoat = new EntityElectroTrans(rnd.nextInt(70 - 30) + 30, rnd.nextInt(500 - 100) + 100, + new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)), + new Color(rnd.nextInt(0, 256), rnd.nextInt(0, 256), rnd.nextInt(0, 256)), + rnd.nextBoolean(), rnd.nextBoolean()); + break; + } + constructor.addTrans(_entityBoat); + constructor.addTrans(_drawWheels); + } + obj = constructor.getRandomTrans(); + + } + + public void reCreateObj() { + obj = constructor.getRandomTrans(); + } + + public String getEntityString(int index) { + return constructor.getEntityDescription(index); + } + + public String getWheelsString(int index) { + return constructor.getPaddlesDescription(index); + } + + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + if (obj != null) { + obj.setPosition(10, 30); + obj.setPictureSize(400, 300); + obj.drawTrans(g); + } + super.repaint(); + + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java b/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java index c0ce001..157cf11 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningElectroTrans.java @@ -5,20 +5,43 @@ import Entities.EntityElectroTrans; import java.awt.*; public class DrawningElectroTrans extends DrawningTrans { - private EntityElectroTrans entityElectroTrans; - - public DrawningElectroTrans(int speed, float weight, Color bodyColor, int paddlesType, Color additionalColor, boolean horns, boolean battery) { - super(speed, weight, bodyColor, paddlesType, 110, 60); - entityElectroTrans = new EntityElectroTrans(speed, weight, bodyColor, additionalColor, horns, battery); + public DrawningElectroTrans(int speed, float weight, Color bodyColor, int wheelsType, Color additionalColor, boolean sail, boolean floaters) { + super(speed, weight, bodyColor, wheelsType, 110, 80); + entityTran = new EntityElectroTrans(speed, weight, bodyColor, additionalColor, floaters, sail); } + public DrawningElectroTrans(EntityElectroTrans entity, IDrawWheels wheels) { + super(entity, wheels); + } + private void drawFloater(int y0, Color additionalColor, Graphics2D g2d) + { + g2d.setColor(additionalColor); + g2d.setStroke(new BasicStroke(2)); + Point[] floater = new Point[] + { + new Point(_startPosX + 10, _startPosY + y0 + 6), + new Point(_startPosX + 90, _startPosY + y0 + 6), + new Point(_startPosX + 110, _startPosY + y0 + 3), + new Point(_startPosX + 90, _startPosY + y0), + new Point(_startPosX + 10, _startPosY + y0), + }; + Polygon floaterPolygon = new Polygon(); + for (Point point: floater) { + floaterPolygon.addPoint(point.x, point.y); + } + g2d.fillPolygon(floaterPolygon); + g2d.drawPolygon(floaterPolygon); + } + @Override public void drawTrans(Graphics g) { - if (entityElectroTrans == null || _startPosX == null || _startPosY == null) { + + if (entityTran == null || !(entityTran instanceof EntityElectroTrans entityElectroTrans) || _startPosX == null || _startPosY == null) { return; } super.drawTrans(g); Graphics2D g2d = (Graphics2D) g; + Point[] electroTransHorns; if (entityElectroTrans.getHorns()) { electroTransHorns = new Point[]{ @@ -64,8 +87,5 @@ public class DrawningElectroTrans extends DrawningTrans { g2d.fillPolygon(electroTransBatteryPolygon); } - } - } - diff --git a/ProjectElectroTrans/src/Drawnings/DrawningFormCatamaran.java b/ProjectElectroTrans/src/Drawnings/DrawningFormCatamaran.java new file mode 100644 index 0000000..ea8c4b6 --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningFormCatamaran.java @@ -0,0 +1,71 @@ +package Drawnings; + +import MovementStrategy.*; + +import javax.swing.*; +import java.awt.*; + +public class DrawningFormCatamaran extends JComponent { + DrawningTrans drawningTrans; + + private int _pictureHeight = -1; + private int _pictureWidth = -1; + private AbstractStrategy _strategy; + public void setDrawningTrans(DrawningTrans drawningTrans) { + this.drawningTrans = drawningTrans; + } + + public boolean setPictureSize(int width, int height) { + if (drawningTrans.GetHeight() > height || drawningTrans.GetWidth() > width) + return false; + _pictureHeight = height; + _pictureWidth = width; + return true; + } + public void buttonStrategyStep(JComboBox comboBox) { + if (drawningTrans == null) + return; + if (comboBox.isEnabled()) { + switch (comboBox.getSelectedIndex()) { + case 0: + _strategy = new MoveToCenter(); + break; + case 1: + _strategy = new MoveToBorder(); + break; + + default: + _strategy = null; + break; + + } + if (_strategy == null) { + return; + } + _strategy.SetData(new MoveableTrans(drawningTrans), _pictureWidth, _pictureHeight); + } + if (_strategy == null) { + return; + } + comboBox.setEnabled(false); + _strategy.MakeStep(); + if (_strategy.GetStatus() == StrategyStatus.Finish) { + comboBox.setEnabled(true); + _strategy = null; + } + + } + public void MoveButtonsAction(MovementDirection direction) { + if (drawningTrans == null) + return; + drawningTrans.moveTransport(direction); + } + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + if (drawningTrans == null) { + return; + } + drawningTrans.drawTrans(g); + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java b/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java index b1c7bb2..dfee4fd 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningRectWheels.java @@ -1,27 +1,32 @@ package Drawnings; - import java.awt.*; public class DrawningRectWheels implements IDrawWheels { - private WheelsCount wheelsCount; + private WheelsCount _wheelsCount = WheelsCount.Two; @Override - public void setNumber(int wheelCount) { + public void setNumber(int wheelsCount) { for (WheelsCount value : WheelsCount.values()) { - if (value.getEnumNumber() == wheelCount) { - wheelsCount = value; + if (value.getEnumNumber() == wheelsCount) { + _wheelsCount = value; return; } } } - @Override public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { g2d.setColor(color); g2d.setStroke(new BasicStroke(4)); - int wheelDistance = 100 / wheelsCount.getEnumNumber(); - for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + int wheelDistance = 100 / _wheelsCount.getEnumNumber(); + for (int i = 0; i < _wheelsCount.getEnumNumber(); i++) { g2d.drawRect(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); } + + } + @Override + public String toString() { + String buffer = ""; + buffer += "Тип: квадратные, Количество колес: " + _wheelsCount.getEnumNumber() * 2; + return buffer; } } diff --git a/ProjectElectroTrans/src/Drawnings/DrawningRectangleWheels.java b/ProjectElectroTrans/src/Drawnings/DrawningRectangleWheels.java new file mode 100644 index 0000000..7010019 --- /dev/null +++ b/ProjectElectroTrans/src/Drawnings/DrawningRectangleWheels.java @@ -0,0 +1,35 @@ +package Drawnings; + +import java.awt.*; + +public class DrawningRectangleWheels implements IDrawWheels { + private WheelsCount _wheelsCount; + + @Override + public void setNumber(int wheelsCount) { + for (WheelsCount value : WheelsCount.values()) { + if (value.getEnumNumber() == wheelsCount) { + _wheelsCount = value; + return; + } + } + } + + @Override + public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { + g2d.setColor(color); + g2d.setStroke(new BasicStroke(4)); + int wheelDistance = 100 / _wheelsCount.getEnumNumber(); + for (int i = 0; i < _wheelsCount.getEnumNumber(); i++) { + g2d.drawLine(_startX + 5 + i * wheelDistance - 4, (int) _startY + 44, _startX + 5 + i * wheelDistance + 4, (int) _startY + 44); + g2d.drawLine(_startX + 5 + i * wheelDistance + 4, (int) _startY + 44, _startX + 5 + i * wheelDistance, (int) _startY + 48); + g2d.drawLine(_startX + 5 + i * wheelDistance, (int) _startY + 48, _startX + 5 + i * wheelDistance - 4, (int) _startY + 44); + } + } + @Override + public String toString() { + String buffer = ""; + buffer += "Тип: прямоугольники, Количество колес: " + _wheelsCount.getEnumNumber() * 2; + return buffer; + } +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningTrans.java b/ProjectElectroTrans/src/Drawnings/DrawningTrans.java index 7cd7181..51892f2 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningTrans.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningTrans.java @@ -1,27 +1,26 @@ package Drawnings; -import Entities.*; +import Entities.EntityTrans; import MovementStrategy.*; import java.awt.*; import java.util.Random; public class DrawningTrans { - private final EntityTrans entityTran; - - public EntityTrans getEntityTrans() { + public EntityTrans entityTran; + public EntityTrans getEntityTran() { return entityTran; } private Integer _pictureWidth; private Integer _pictureHeight; protected Integer _startPosX; protected Integer _startPosY; - private int _drawingTransWidth = 110; - private int _drawingTransHeight = 60; - public int GetPosX(){return _startPosX;} - public int GetPosY(){return _startPosY;} - public int GetWidth(){return _drawingTransWidth;} - public int GetHeight(){return _drawingTransHeight;} - private IDrawWheels drawWheels; + private int _drawingBoatWidth = 107; + private int _drawingBoatHeight = 80; + public Integer GetPosX(){return _startPosX;} + public Integer GetPosY(){return _startPosY;} + public int GetWidth(){return _drawingBoatWidth;} + public int GetHeight(){return _drawingBoatHeight;} + public IDrawWheels drawWheels; public DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType) { entityTran = new EntityTrans(speed, weight, bodyColor); @@ -34,53 +33,55 @@ public class DrawningTrans { drawWheels = new DrawningWheels(); break; case 1: - drawWheels = new DrawningTriangleWheels(); + drawWheels = new DrawningRectWheels(); break; case 2: - drawWheels = new DrawningRectWheels(); + drawWheels = new DrawningRectangleWheels(); break; } Random random = new Random(); - int wheelsCount = random.nextInt(2, 4); - System.out.print(wheelsCount); + int wheelsCount = random.nextInt(1,4); drawWheels.setNumber(wheelsCount); } - protected DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType, int transWidth, int transHeight) { + protected DrawningTrans(int speed, float weight, Color bodyColor, int wheelsType, int boatWidth, int boatHeight) { this(speed, weight, bodyColor, wheelsType); - _drawingTransHeight = transHeight; - _drawingTransWidth = transWidth; + _drawingBoatHeight = boatHeight; + _drawingBoatWidth = boatWidth; } + public DrawningTrans(EntityTrans _entityBoat, IDrawWheels _drawPaddles) { + entityTran = _entityBoat; + drawWheels = _drawPaddles; + } public void setPosition(int x, int y) { if (_pictureHeight == null || _pictureWidth == null) return; _startPosX = x; _startPosY = y; - if (_drawingTransWidth + x > _pictureWidth || x < 0) { + if (_drawingBoatWidth + x > _pictureWidth || x < 0) { _startPosX = 0; } - if (_drawingTransHeight + y > _pictureHeight || y < 0) { + if (_drawingBoatHeight + y > _pictureHeight || y < 0) { _startPosY = 0; } } public boolean setPictureSize(int width, int height) { - if (_drawingTransHeight > height || _drawingTransWidth > width) + if (_drawingBoatHeight > height || _drawingBoatWidth > width) return false; _pictureHeight = height; _pictureWidth = width; if (_startPosX != null && _startPosY != null) { - if (_startPosX + _drawingTransWidth > width) - _startPosX = width - _drawingTransWidth; - if (_startPosY + _drawingTransHeight > height) - _startPosY = height - _drawingTransHeight; + if (_startPosX + _drawingBoatWidth > width) + _startPosX = width - _drawingBoatWidth; + if (_startPosY + _drawingBoatHeight > height) + _startPosY = height - _drawingBoatHeight; } - return true; } @@ -97,11 +98,11 @@ public class DrawningTrans { _startPosY -= (int) entityTran.getStep(); return true; case MovementDirection.Right: - if (_startPosX + entityTran.getStep() < _pictureWidth - _drawingTransWidth) + if (_startPosX + entityTran.getStep() < _pictureWidth - _drawingBoatWidth) _startPosX += (int) entityTran.getStep(); return true; case MovementDirection.Down: - if (_startPosY + entityTran.getStep() < _pictureHeight - _drawingTransHeight) + if (_startPosY + entityTran.getStep() < _pictureHeight - _drawingBoatHeight) _startPosY += (int) entityTran.getStep(); return true; default: @@ -146,4 +147,4 @@ public class DrawningTrans { drawWheels.drawWheels(g2d, entityTran.getBodyColor(), _startPosX, _startPosY); } -} \ No newline at end of file +} diff --git a/ProjectElectroTrans/src/Drawnings/DrawningWheels.java b/ProjectElectroTrans/src/Drawnings/DrawningWheels.java index 826f625..d18060d 100644 --- a/ProjectElectroTrans/src/Drawnings/DrawningWheels.java +++ b/ProjectElectroTrans/src/Drawnings/DrawningWheels.java @@ -3,25 +3,29 @@ package Drawnings; import java.awt.*; public class DrawningWheels implements IDrawWheels { - private WheelsCount wheelsCount; - + private WheelsCount _wheelsCount; @Override - public void setNumber(int wheelCount) { + public void setNumber(int wheelsCount) { for (WheelsCount value : WheelsCount.values()) { - if (value.getEnumNumber() == wheelCount) { - wheelsCount = value; + if (value.getEnumNumber() == wheelsCount) { + _wheelsCount = value; return; } } } - @Override public void drawWheels(Graphics2D g2d, Color color, int _startX, int _startY) { g2d.setColor(color); g2d.setStroke(new BasicStroke(4)); - int wheelDistance = 100 / wheelsCount.getEnumNumber(); - for (int i = 0; i < wheelsCount.getEnumNumber(); i++) { + int wheelDistance = 100 / _wheelsCount.getEnumNumber(); + for (int i = 0; i < _wheelsCount.getEnumNumber(); i++) { g2d.drawOval(_startX + 5 + i * wheelDistance, _startY + 46, 8, 8); } } -} + @Override + public String toString() { + String buffer = ""; + buffer += "Тип: обычные, Количество колес: " + _wheelsCount.getEnumNumber() * 2; + return buffer; + } +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Drawnings/WheelsCount.java b/ProjectElectroTrans/src/Drawnings/WheelsCount.java index 483d4da..2aa3b9f 100644 --- a/ProjectElectroTrans/src/Drawnings/WheelsCount.java +++ b/ProjectElectroTrans/src/Drawnings/WheelsCount.java @@ -12,5 +12,4 @@ public enum WheelsCount { public int getEnumNumber() { return EnumNumber; } - } diff --git a/ProjectElectroTrans/src/Entities/EntityElectroTrans.java b/ProjectElectroTrans/src/Entities/EntityElectroTrans.java index f147ce0..84da558 100644 --- a/ProjectElectroTrans/src/Entities/EntityElectroTrans.java +++ b/ProjectElectroTrans/src/Entities/EntityElectroTrans.java @@ -2,36 +2,11 @@ package Entities; import java.awt.*; -public class EntityElectroTrans extends EntityTrans { - private int Speed; - - public EntityElectroTrans(int speed, double weight, Color bodyColor, Color additionalColor, boolean horns, boolean battery) { - super(speed, weight, bodyColor); - AdditionalColor = additionalColor; - Horns = horns; - Battery = battery; - } - - public int getSpeed() { - return Speed; - } - private double Weight; - public double getWeight() { - return Weight; - } - private Color BodyColor; - public Color getBodyColor() { - return BodyColor; - } +public class EntityElectroTrans extends EntityTrans { private Color AdditionalColor; public Color getAdditionalColor() { return AdditionalColor; } - - - public double Step() { - return Speed*100/Weight; - } private boolean Horns; public boolean getHorns() { return Horns; @@ -40,4 +15,19 @@ public class EntityElectroTrans extends EntityTrans { public boolean getBattery() { return Battery; } + public EntityElectroTrans(int speed, double weight, Color bodyColor ,Color additionalColor, boolean sail, boolean floaters) { + super(speed, weight, bodyColor); + AdditionalColor = additionalColor; + Horns = sail; + Battery = floaters; + } + @Override + public String toString() { + String buffer = super.toString(); + buffer += String.format(", Дополнительный цвет : RGB{%d, %d, %d}", + this.AdditionalColor.getRed(), this.AdditionalColor.getGreen(), this.AdditionalColor.getBlue()); + buffer += ", Рога: " + this.Horns; + buffer += ", Батарея: " + this.Battery; + return buffer; + } } diff --git a/ProjectElectroTrans/src/Entities/EntityTrans.java b/ProjectElectroTrans/src/Entities/EntityTrans.java index 81fdaa1..3ce91ed 100644 --- a/ProjectElectroTrans/src/Entities/EntityTrans.java +++ b/ProjectElectroTrans/src/Entities/EntityTrans.java @@ -4,20 +4,27 @@ import java.awt.*; public class EntityTrans { private int Speed; + public int getSpeed() { return Speed; } + private double Weight; + public double getWeight() { return Weight; } + private Color BodyColor; + public Color getBodyColor() { return BodyColor; } + private double Step; + public double getStep() { - return Speed*100/Weight; + return Speed * 100 / Weight; } public EntityTrans(int speed, double weight, Color bodyColor) { @@ -25,4 +32,14 @@ public class EntityTrans { Weight = weight; BodyColor = bodyColor; } -} \ No newline at end of file + + @Override + public String toString() { + String buffer = ""; + buffer += "Скорость: " + this.Speed; + buffer += ", Вес: " + this.Weight; + buffer += String.format(", Основной цвет : RGB{%d, %d, %d}", + this.BodyColor.getRed(), this.BodyColor.getGreen(), this.BodyColor.getBlue()); + return buffer; + } +} diff --git a/ProjectElectroTrans/src/FormElectroTrans.form b/ProjectElectroTrans/src/FormElectroTrans.form deleted file mode 100644 index c1bb807..0000000 --- a/ProjectElectroTrans/src/FormElectroTrans.form +++ /dev/null @@ -1,131 +0,0 @@ - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/ProjectElectroTrans/src/FormElectroTrans.java b/ProjectElectroTrans/src/FormElectroTrans.java deleted file mode 100644 index 9aa7ae2..0000000 --- a/ProjectElectroTrans/src/FormElectroTrans.java +++ /dev/null @@ -1,183 +0,0 @@ -import Drawnings.DrawningElectroTrans; -import Drawnings.DrawningTrans; -import MovementStrategy.*; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.LinkedList; -import java.util.Random; -import java.util.List; - -public class FormElectroTrans extends JFrame { - protected DrawningTrans _drawningTrans; - JPanel PanelWrapper; - private JPanel PictureBox; - private JButton buttonCreateElectroTrans; - private JButton buttonCreateTrans; - private JButton buttonRight; - private JButton buttonDown; - private JButton buttonLeft; - private JButton buttonUp; - private JComboBox comboBoxStrategy; - private JButton buttonStrategyStep; - private AbstractStrategy _strategy; - private List controls; - - private void createObject(String type) { - Random random = new Random(); - switch (type) { - case "Drawnings.DrawningTrans": - _drawningTrans = new DrawningTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, - new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), random.nextInt(3)); - break; - case "Drawnings.DrawningElectroTrans": - _drawningTrans = new DrawningElectroTrans(random.nextInt(70 - 30) + 30, random.nextInt(500 - 100) + 100, - new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), random.nextInt(3), - new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)), - random.nextBoolean(), random.nextBoolean()); - break; - default: - return; - } - _drawningTrans.setPictureSize(PictureBox.getWidth(), PictureBox.getHeight()); - _drawningTrans.setPosition(random.nextInt(25, 100), - random.nextInt(25, 100)); - _strategy = null; - comboBoxStrategy.setEnabled(true); - - - Draw(); - } - - public FormElectroTrans() { - buttonUp.setName("buttonUp"); - buttonDown.setName("buttonDown"); - buttonLeft.setName("buttonLeft"); - buttonRight.setName("buttonRight"); - - InitializeControlsRepaintList(); - - buttonCreateElectroTrans.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - createObject("Drawnings.DrawningElectroTrans"); - - } - }); - buttonCreateTrans.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - createObject("Drawnings.DrawningTrans"); - } - }); - ActionListener buttonMoveClickedListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - String buttonName = ((JButton) e.getSource()).getName(); - boolean result = false; - - switch (buttonName) { - case "buttonUp": { - result = _drawningTrans.moveTransport(MovementDirection.Up); - } - break; - case "buttonDown": { - result = _drawningTrans.moveTransport(MovementDirection.Down); - } - break; - case "buttonLeft": { - result = _drawningTrans.moveTransport(MovementDirection.Left); - } - break; - case "buttonRight": { - result = _drawningTrans.moveTransport(MovementDirection.Right); - } - break; - - } - if (result) - Draw(); - } - }; - buttonRight.addActionListener(buttonMoveClickedListener); - buttonDown.addActionListener(buttonMoveClickedListener); - buttonLeft.addActionListener(buttonMoveClickedListener); - buttonUp.addActionListener(buttonMoveClickedListener); - - comboBoxStrategy.addItem("К центру"); - comboBoxStrategy.addItem("К краю"); - buttonStrategyStep.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (_drawningTrans == null) - return; - if (comboBoxStrategy.isEnabled()) { - switch (comboBoxStrategy.getSelectedIndex()) { - case 0: - _strategy = new MoveToCenter(); - break; - case 1: - _strategy = new MoveToBorder(); - break; - - default: - _strategy = null; - break; - - } - if (_strategy == null) { - return; - } - _strategy.SetData(new MoveableTrans(_drawningTrans), PictureBox.getWidth(), PictureBox.getHeight()); - } - if (_strategy == null) { - return; - } - _strategy.MakeStep(); - Draw(); - comboBoxStrategy.setEnabled(false); - - if (_strategy.GetStatus() == StrategyStatus.Finish) { - comboBoxStrategy.setEnabled(true); - _strategy = null; - } - } - }); - - } - private void Draw() { - if (_drawningTrans.getEntityTrans() == null) - return; - if (PictureBox.getWidth() == 0 || PictureBox.getHeight() == 0) { - return; - } - Graphics g = PictureBox.getGraphics(); - g.setColor(PictureBox.getBackground()); - g.fillRect(0,0, PictureBox.getWidth(), PictureBox.getHeight()); - _drawningTrans.drawTrans(g); - - RepaintControls(); - } - private void RepaintControls() { - for (JComponent control : controls) { - control.repaint(); - } - } - - - private void InitializeControlsRepaintList() { - controls = new LinkedList<>(); - controls.add(buttonCreateElectroTrans); - controls.add(buttonCreateTrans); - controls.add(buttonUp); - controls.add(buttonDown); - controls.add(buttonLeft); - controls.add(buttonRight); - controls.add(comboBoxStrategy); - controls.add(buttonStrategyStep); - } - - -} diff --git a/ProjectElectroTrans/src/Forms/FormConstructor.java b/ProjectElectroTrans/src/Forms/FormConstructor.java new file mode 100644 index 0000000..2d688f4 --- /dev/null +++ b/ProjectElectroTrans/src/Forms/FormConstructor.java @@ -0,0 +1,92 @@ +package Forms; + +import Drawnings.DrawningConstructor; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; + +public class FormConstructor extends JFrame { + private JFrame jFrameConstructor = new JFrame(); + public JFrame getjFrameConstructor() { + return jFrameConstructor; + } + private JButton addButton = new JButton("Добавить объект"); + public JButton getAddButton() { + return addButton; + } + public JButton reCreateButton = new JButton("Пересоздать"); + private final DrawningConstructor constructor = new DrawningConstructor(); + public DrawningConstructor getConstructor() { + return constructor; + } + JPanel entitiesInfoPanel = new JPanel(); + JLabel firstEntityLabel = new JLabel(); + JLabel secondEntityLabel = new JLabel(); + JLabel thirdEntityLabel = new JLabel(); + + JPanel wheelsInfoPanel = new JPanel(); + JLabel firstPaddlesLabel = new JLabel(); + JLabel secondPaddlesLabel = new JLabel(); + JLabel thirdPaddlesLabel = new JLabel(); + + public void OpenFrame() { + + Toolkit tolls = Toolkit.getDefaultToolkit(); + Dimension dimension = tolls.getScreenSize(); + jFrameConstructor.setBounds(dimension.width / 2 - 250, dimension.height / 2 - 250, + 800, 300); + jFrameConstructor.setLayout(new BorderLayout()); + + firstEntityLabel.setText(constructor.getEntityString(0)); + secondEntityLabel.setText(constructor.getEntityString(1)); + thirdEntityLabel.setText(constructor.getEntityString(2)); + + entitiesInfoPanel.setLayout(new BoxLayout(entitiesInfoPanel, BoxLayout.Y_AXIS)); + entitiesInfoPanel.setBorder(BorderFactory.createTitledBorder("Entities")); + entitiesInfoPanel.setSize(500, 130); + entitiesInfoPanel.setLocation(150, 10); + entitiesInfoPanel.add(firstEntityLabel); + entitiesInfoPanel.add(secondEntityLabel); + entitiesInfoPanel.add(thirdEntityLabel); + + firstPaddlesLabel.setText(constructor.getWheelsString(0)); + secondPaddlesLabel.setText(constructor.getWheelsString(1)); + thirdPaddlesLabel.setText(constructor.getWheelsString(2)); + + + wheelsInfoPanel.setLayout(new BoxLayout(wheelsInfoPanel, BoxLayout.Y_AXIS)); + wheelsInfoPanel.setBorder(BorderFactory.createTitledBorder("Wheels")); + wheelsInfoPanel.setSize(500, 130); + wheelsInfoPanel.setLocation(150, 150); + wheelsInfoPanel.add(firstPaddlesLabel); + wheelsInfoPanel.add(secondPaddlesLabel); + wheelsInfoPanel.add(thirdPaddlesLabel); + + addButton.setBounds(0, jFrameConstructor.getHeight() - 105, 150, 50); + reCreateButton.setBounds(0, jFrameConstructor.getHeight() - 135, 150, 30); + + jFrameConstructor.add(wheelsInfoPanel); + jFrameConstructor.add(entitiesInfoPanel); + jFrameConstructor.add(addButton); + jFrameConstructor.add(reCreateButton); + jFrameConstructor.add(constructor); + jFrameConstructor.revalidate(); + jFrameConstructor.repaint(); + + jFrameConstructor.addComponentListener(new ComponentAdapter() { + public void componentResized(ComponentEvent componentEvent) { + addButton.setLocation(0, jFrameConstructor.getSize().height - 105); + reCreateButton.setLocation(0, jFrameConstructor.getSize().height - 135); + } + }); + reCreateButton.addActionListener(e -> { + constructor.reCreateObj(); + jFrameConstructor.repaint(); + }); + + jFrameConstructor.setVisible(true); + } + +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Forms/FormElectroTrans.java b/ProjectElectroTrans/src/Forms/FormElectroTrans.java new file mode 100644 index 0000000..8fbf7ba --- /dev/null +++ b/ProjectElectroTrans/src/Forms/FormElectroTrans.java @@ -0,0 +1,113 @@ +package Forms; + +import Drawnings.*; +import MovementStrategy.*; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; + + +public class FormElectroTrans extends JFrame { + final private JFrame JFrameElectroTrans = new JFrame(); + final private JButton buttonRight = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_right.png")); + final private JPanel RightPanel = new JPanel(); + final private JButton buttonDown = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_down.png")); + final private JPanel DownPanel = new JPanel(); + final private JButton buttonLeft = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_left.png")); + final private JPanel LeftPanel = new JPanel(); + final private JButton buttonUp = new JButton(new ImageIcon("ProjectElectroTrans\\Resources\\30px_arrow_up.png")); + + final private JPanel UpPanel = new JPanel(); + final private String [] itemsComboBox = { + "К центру", + "К краю" + }; + final private JComboBox comboBoxStrategy =new JComboBox<>(itemsComboBox); + final private JButton buttonStrategyStep = new JButton("Шаг"); + final private JPanel StrategyPanel = new JPanel(new BorderLayout()); + + final private DrawningFormCatamaran form = new DrawningFormCatamaran(); + public void setDrawningTrans(DrawningTrans boat) {form.setDrawningTrans(boat);} + public void OpenFrame() { + JFrameElectroTrans.setVisible(true); + Toolkit tolls = Toolkit.getDefaultToolkit(); + Dimension dimension = tolls.getScreenSize(); + JFrameElectroTrans.setBounds(dimension.width / 2 - 250, dimension.height / 2 - 250, + 970, 700); + JFrameElectroTrans.setTitle("Электропоезд"); + + comboBoxStrategy.setPreferredSize(new Dimension(100, 35)); + buttonStrategyStep.setPreferredSize(new Dimension(100, 35)); + StrategyPanel.setSize(100, 70); + StrategyPanel.add(comboBoxStrategy, BorderLayout.NORTH); + StrategyPanel.add(buttonStrategyStep, BorderLayout.SOUTH); + + + UpPanel.setSize(30, 30); + buttonUp.setPreferredSize(new Dimension(30, 30)); + UpPanel.add(buttonUp, BorderLayout.CENTER); + + DownPanel.setSize(30, 30); + buttonDown.setPreferredSize(new Dimension(30, 30)); + DownPanel.add(buttonDown, BorderLayout.CENTER); + + RightPanel.setSize(30, 30); + buttonRight.setPreferredSize(new Dimension(30, 30)); + RightPanel.add(buttonRight, BorderLayout.CENTER); + + LeftPanel.setSize(30, 30); + buttonLeft.setPreferredSize(new Dimension(30, 30)); + LeftPanel.add(buttonLeft, BorderLayout.CENTER); + + JFrameElectroTrans.add(StrategyPanel); + JFrameElectroTrans.add(UpPanel); + JFrameElectroTrans.add(DownPanel); + JFrameElectroTrans.add(RightPanel); + JFrameElectroTrans.add(LeftPanel); + JFrameElectroTrans.add(form); + + JFrameElectroTrans.addComponentListener(new ComponentAdapter() { + public void componentResized(ComponentEvent e) { + StrategyPanel.setLocation(JFrameElectroTrans.getWidth() - 100, 0); + UpPanel.setLocation(JFrameElectroTrans.getWidth() - 80, JFrameElectroTrans.getHeight()-100); + DownPanel.setLocation(JFrameElectroTrans.getWidth() - 80, JFrameElectroTrans.getHeight()-70); + RightPanel.setLocation(JFrameElectroTrans.getWidth() - 45, JFrameElectroTrans.getHeight()-70); + LeftPanel.setLocation(JFrameElectroTrans.getWidth() - 115, JFrameElectroTrans.getHeight()-70); + + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + JFrameElectroTrans.repaint(); + + } + + }); + + buttonUp.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Up); + JFrameElectroTrans.repaint(); + }); + + buttonDown.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Down); + JFrameElectroTrans.repaint(); + }); + buttonLeft.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Left); + JFrameElectroTrans.repaint(); + }); + buttonRight.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.MoveButtonsAction(MovementDirection.Right); + JFrameElectroTrans.repaint(); + }); + buttonStrategyStep.addActionListener(e -> { + form.setPictureSize(JFrameElectroTrans.getWidth(), JFrameElectroTrans.getHeight()); + form.buttonStrategyStep(comboBoxStrategy); + JFrameElectroTrans.repaint(); + }); + + } +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/Forms/FormTransCollection.java b/ProjectElectroTrans/src/Forms/FormTransCollection.java new file mode 100644 index 0000000..4618e29 --- /dev/null +++ b/ProjectElectroTrans/src/Forms/FormTransCollection.java @@ -0,0 +1,164 @@ +package Forms; + +import Drawnings.DrawningAbstractCompany; + +import javax.swing.*; +import javax.swing.text.NumberFormatter; +import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.text.NumberFormat; + +public class FormTransCollection extends JFrame { + final private JFrame jFrameCollectionTranss = new JFrame(); + final private DrawningAbstractCompany _company = new DrawningAbstractCompany(); + final private JButton refreshButton = new JButton("Обновить"); + final private JPanel refreshPanel = new JPanel(); + final private String[] listOfComboBox = { + + "", + "Хранилище" + }; + final private JComboBox comboBoxSelectorCompany = new JComboBox<>(listOfComboBox); + final private JPanel comboBoxPanel = new JPanel(); + final private JPanel toolsPanel = new JPanel(); + final private JLabel toolsNameLabel = new JLabel("Инструменты"); + final private JPanel labelPanel = new JPanel(); + final private JButton buttonAddTrans = new JButton("Добавить поезд"); + final private JButton buttonAddElectroTrans = new JButton("Добавить Электропоезд"); + final private JPanel addTransPanel = new JPanel(); + final private JPanel addElectroTransPanel = new JPanel(); + final private JButton buttonRemove = new JButton("Удалить поезд"); + final private JPanel removePanel = new JPanel(); + final private JButton goToCheckButton = new JButton("Отправит на тесты"); + final private JPanel goToCheckPanel = new JPanel(); + final private JPanel addFromConstructorPanel = new JPanel(); + final private JButton addFromConstructorButton = new JButton("Добавить из констркутора"); + + public void OpenFrame() { + + jFrameCollectionTranss.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + Toolkit tolls = Toolkit.getDefaultToolkit(); + Dimension dimension = tolls.getScreenSize(); + jFrameCollectionTranss.setBounds(dimension.width / 2 - 250, dimension.height / 2 - 250, + 1200, 665); + jFrameCollectionTranss.setTitle("Коллекция поездов"); + + toolsPanel.setBackground(Color.BLACK); + labelPanel.setSize(new Dimension(100, 20)); + labelPanel.add(toolsNameLabel); + + comboBoxPanel.setLayout(new BorderLayout()); + comboBoxPanel.setSize(new Dimension(130, 30)); + comboBoxPanel.add(comboBoxSelectorCompany, BorderLayout.CENTER); + + addTransPanel.setLayout(new BorderLayout()); + addTransPanel.setSize(170, 40); + addTransPanel.add(buttonAddTrans, BorderLayout.CENTER); + + addElectroTransPanel.setLayout(new BorderLayout()); + addElectroTransPanel.setSize(170, 40); + addElectroTransPanel.add(buttonAddElectroTrans, BorderLayout.CENTER); + + removePanel.setLayout(new BorderLayout()); + removePanel.setSize(170, 40); + removePanel.add(buttonRemove, BorderLayout.CENTER); + + goToCheckPanel.setLayout(new BorderLayout()); + goToCheckPanel.setSize(170, 40); + goToCheckPanel.add(goToCheckButton, BorderLayout.CENTER); + + refreshPanel.setLayout(new BorderLayout()); + refreshPanel.setSize(170, 40); + refreshPanel.add(refreshButton, BorderLayout.CENTER); + + addFromConstructorPanel.setLayout(new BorderLayout()); + addFromConstructorPanel.setSize(170, 40); + addFromConstructorPanel.add(addFromConstructorButton, BorderLayout.CENTER); + + NumberFormat format = NumberFormat.getInstance(); + NumberFormatter formatter = new NumberFormatter(format); + formatter.setValueClass(Integer.class); + formatter.setMinimum(0); + formatter.setMaximum(100); + formatter.setAllowsInvalid(true); + formatter.setCommitsOnValidEdit(true); + + JTextField textBoxPosition = new JFormattedTextField(formatter); + JPanel textBoxPanel = new JPanel(); + textBoxPanel.setLayout(new BorderLayout()); + textBoxPanel.setSize(170, 40); + textBoxPanel.add(textBoxPosition, BorderLayout.CENTER); + + jFrameCollectionTranss.add(toolsPanel); + jFrameCollectionTranss.add(labelPanel); + jFrameCollectionTranss.add(comboBoxPanel); + jFrameCollectionTranss.add(addTransPanel); + jFrameCollectionTranss.add(addElectroTransPanel); + jFrameCollectionTranss.add(textBoxPanel); + jFrameCollectionTranss.add(removePanel); + jFrameCollectionTranss.add(goToCheckPanel); + jFrameCollectionTranss.add(refreshPanel); + jFrameCollectionTranss.add(addFromConstructorPanel); + jFrameCollectionTranss.add(_company); + + jFrameCollectionTranss.addComponentListener(new ComponentAdapter() { + public void componentResized(ComponentEvent componentEvent) { + labelPanel.setLocation(jFrameCollectionTranss.getWidth() - 210, 0); + toolsPanel.setLocation(jFrameCollectionTranss.getWidth() - 233, 0); + comboBoxPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 30); + addTransPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 70); + addElectroTransPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 120); + textBoxPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 220); + removePanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 260); + goToCheckPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 300); + refreshPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 340); + addFromConstructorPanel.setLocation(jFrameCollectionTranss.getWidth() - 200, 170); + toolsPanel.setSize(new Dimension(10, jFrameCollectionTranss.getHeight())); + + jFrameCollectionTranss.repaint(); + } + }); + + comboBoxSelectorCompany.addActionListener(e -> { + + _company.collectionComboBox_SelectedIndexChanged(comboBoxSelectorCompany, + jFrameCollectionTranss.getWidth() - 233, jFrameCollectionTranss.getHeight()); + jFrameCollectionTranss.repaint(); + + }); + buttonAddTrans.addActionListener(e -> { + _company.createObject(0, jFrameCollectionTranss); + jFrameCollectionTranss.repaint(); + }); + buttonAddElectroTrans.addActionListener(e -> { + _company.createObject(1, jFrameCollectionTranss); + jFrameCollectionTranss.repaint(); + }); + + buttonRemove.addActionListener(e -> { + if (!textBoxPosition.getText().isEmpty()) { + if (Integer.parseInt(textBoxPosition.getText()) <= 99 + && Integer.parseInt(textBoxPosition.getText()) >= 0) { + int pos = Integer.parseInt(textBoxPosition.getText()); + _company.deleteButtonAction(pos, jFrameCollectionTranss); + } + } + jFrameCollectionTranss.repaint(); + + }); + refreshButton.addActionListener(e -> { + jFrameCollectionTranss.repaint(); + }); + goToCheckButton.addActionListener(e -> { + _company.goToCheckButtonAction(); + jFrameCollectionTranss.repaint(); + }); + addFromConstructorButton.addActionListener(e -> { + _company.getObjFromConstructor(jFrameCollectionTranss); + }); + jFrameCollectionTranss.setVisible(true); + + } + +} diff --git a/ProjectElectroTrans/src/Main.java b/ProjectElectroTrans/src/Main.java index 41dd2d5..8cc26d8 100644 --- a/ProjectElectroTrans/src/Main.java +++ b/ProjectElectroTrans/src/Main.java @@ -1,19 +1,7 @@ -import javax.swing.*; - -//TIP To Run code, press or -// click the icon in the gutter. +import Forms.FormTransCollection; public class Main { public static void main(String[] args) { - JFrame.setDefaultLookAndFeelDecorated(false); - JFrame frame = new JFrame("Элетроаоезд"); - frame.setContentPane(new FormElectroTrans().PanelWrapper); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setLocation(500, 200); - frame.pack(); - frame.setSize(700, 500); - frame.setVisible(true); - //TIP Press with your caret at the highlighted text - // to see how IntelliJ IDEA suggests fixing it. - + FormTransCollection formTransCollection = new FormTransCollection(); + formTransCollection.OpenFrame(); } } \ No newline at end of file diff --git a/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java b/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java index d5bb319..af251fa 100644 --- a/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java +++ b/ProjectElectroTrans/src/MovementStrategy/AbstractStrategy.java @@ -38,6 +38,7 @@ public abstract class AbstractStrategy { protected boolean MoveRight() { return MoveTo(MovementDirection.Right); } protected boolean MoveUp() { return MoveTo(MovementDirection.Up); } protected boolean MoveDown() { return MoveTo(MovementDirection.Down); } + protected ObjectParameters GetObjectParameters() { return _moveableObject.GetObjectPosition(); } protected int GetStep() @@ -49,7 +50,9 @@ public abstract class AbstractStrategy { return _moveableObject.GetStep(); } protected abstract void MoveToTarget(); + protected abstract boolean IsTargetDestination(); + private boolean MoveTo(MovementDirection directionType) { if (_state != StrategyStatus.InProgress) diff --git a/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java b/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java index 6c44e9f..5dd7839 100644 --- a/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java +++ b/ProjectElectroTrans/src/MovementStrategy/MoveToBorder.java @@ -1,18 +1,17 @@ package MovementStrategy; public class MoveToBorder extends AbstractStrategy { + @Override protected boolean IsTargetDestination() { var objParams = GetObjectParameters(); if (objParams == null) { return false; } - return objParams.RightBorder() <= FieldWidth && - objParams.RightBorder() + GetStep() >= FieldWidth && - objParams.DownBorder() <= FieldHeight && + return objParams.RightBorder() + GetStep() >= FieldWidth && objParams.DownBorder() + GetStep() >= FieldHeight; } - + @Override protected void MoveToTarget() { var objParams = GetObjectParameters(); diff --git a/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java b/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java index f96269b..84a9fb2 100644 --- a/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java +++ b/ProjectElectroTrans/src/MovementStrategy/MoveToCenter.java @@ -1,6 +1,7 @@ package MovementStrategy; public class MoveToCenter extends AbstractStrategy { + @Override protected boolean IsTargetDestination() { var objParams = GetObjectParameters(); @@ -12,6 +13,7 @@ public class MoveToCenter extends AbstractStrategy { objParams.ObjectMiddleVertical() - GetStep() <= FieldHeight / 2 && objParams.ObjectMiddleVertical() + GetStep() >= FieldHeight / 2); } + @Override protected void MoveToTarget() { @@ -43,4 +45,4 @@ public class MoveToCenter extends AbstractStrategy { } } } -} +} \ No newline at end of file diff --git a/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java b/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java index 054ffa5..9577937 100644 --- a/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java +++ b/ProjectElectroTrans/src/MovementStrategy/MoveableTrans.java @@ -1,6 +1,5 @@ package MovementStrategy; - -import Drawnings.DrawningTrans; +import Drawnings.*; public class MoveableTrans implements IMoveableObject { private DrawningTrans _trans = null; @@ -11,14 +10,14 @@ public class MoveableTrans implements IMoveableObject { public ObjectParameters GetObjectPosition() { - if (_trans == null || _trans.getEntityTrans() == null) + if (_trans == null || _trans.getEntityTran() == null) { return null; } return new ObjectParameters(_trans.GetPosX(), _trans.GetPosY(), _trans.GetWidth(), _trans.GetHeight()); } - public int GetStep() { return (int) _trans.getEntityTrans().getStep(); } + public int GetStep() { return (int) _trans.getEntityTran().getStep(); } public boolean TryMoveObject(MovementDirection direction) { return _trans.moveTransport(direction); } public void MoveObject(MovementDirection direction) { _trans.moveTransport(direction); } } diff --git a/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java b/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java index a741f5a..9260415 100644 --- a/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java +++ b/ProjectElectroTrans/src/MovementStrategy/ObjectParameters.java @@ -11,7 +11,6 @@ public class ObjectParameters { public int RightBorder() { return _x + _width; } public int DownBorder() { return _y + _height; } - public int ObjectMiddleHorizontal () { return _x + _width / 2; } public int ObjectMiddleVertical () { return _y + _height / 2; } diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/AbstractCompany.class new file mode 100644 index 0000000000000000000000000000000000000000..6c6fd33847d8842d145d1bd52558590a5139a52e GIT binary patch literal 2461 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 Lkq0>JCLDbOCT4f= literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/MassiveGenericObjects.class new file mode 100644 index 0000000000000000000000000000000000000000..df9695f37cda36db51f4364524e4294b21884adf GIT binary patch literal 2572 zcmb7FO;b~66n@^^#00n?75U0X{Q^k>5>(J)AWBg&Ho*@ljBe^B1iW~;VUj>=*Zmc3 z$C=uN8y7gEIMdEJU9~e^chTR_P1kj7?Q`x;LQpc(Zr=NTocB5BdCocS{q>(8UICcG zVlzC@{P61V;ebN>nz3ahEW=(++*n%6=gJBPCQREbrxdhkY@rDOH2Kl2qXoLc@N~hl zXk`}cnY^7ZnmPAYDUmfwC37pkcUK{>ZhSFa*tChO(gN0|*z$6Ld$2lns1M)& zbwuzX`I&YpUt~a$Xy$U!_}n(_)l#B5n=cx6DVdJ(N;{6~IELedSk2SEGn$UMPV4k? zJof46$4T0i#BLy(e&1}Ln|?$Ux~q=g2|?V)bqr!i!EctXtZ$SbI$Z9`$*`m^L5d7% zK{ih7ID@k!XDlyIS(ZYu8iXV2ZrYMD2VhLcIh-dT?SDeKCn zw|w6$DU4(qdEUPY>8EQi+{2A3@zcT@ z&DNUIx3ofO6nr_iN$*e0UuX!GdcR5<%h#|xsuDKO6*h~x{8dx(9o+Z*7?u`i3kLXT zDSQNtUp@t#U*K!zL6RfiC616+g`=NmeAqZnaJ9l4ir--TB~)B{0ly5b@gLEC=Oqrk zK*uwlYMA8M#e1M9FL9dCiZ+hDL{D*7cTsQ=m$;hRv-2@m3eyNyd|u{Pd zr<}VUBr331cM${cAp1C4kr4&PnU^+pnDP6+hd=x+e4eM_R7BQ~5f@sK9US=uz0P!S2PYQe zcb=owdym>io_?jNCvSh_g-8F%`0bOozk7s}*GWT)i3Ek$DQFwx>S1Ija0I7t6z5qA zNS`UWi_(d|3<)V9bKqH;f@ zzdHR116gOTc2!)aibLCKn*gpP$61xY2!lLLNzPK7QIa1c!E==3JiB1rp?#E2`#RK4`ics&KkVPRDAT$}|?x2ss6XlhpQO9IRtfA9I@{ zfF$!GLKIWd;+CPL?-Eyps*B3)FgdHn!p;rVMRJRDou*c&D2r666?%j5^p7V@MD?0jPKHB!j65vlKjR@j8}dxl z*XK2^(oDv6bW^xv$gmQ#`~%N28Ch1+O*Zc>jkt=0OBGL3G1b|cPn z5$85*O!h=)t0t301d*rO$*z5}W>poe69@iA)Q@)c7kWHz(5hae!%H)_&FAqcVLe#* E7x6v-+W-In literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/CollectionGenericObjects/TransSharingService.class b/out/production/ProjectElectroTrans/CollectionGenericObjects/TransSharingService.class new file mode 100644 index 0000000000000000000000000000000000000000..ec1cd8f05d358915550d05428c56e88e9a5a8c08 GIT binary patch literal 2601 zcmbVN?@v=#7=BKB+Y99uTU=2`K}DxflulHp@?%q&%2t$72BO>Sr7h)R>1DS?!2R+A z$+921Y}q%H#cWw{AI${DOqONYT(S@QuDBOZu@s__m9(AG za2kEAJ|z*dv8VL<+s+#22{MJVGvP)EydNx z{8%%I7|7!rHLg&l_Q}r6lf5p}4a@qO$mVe42_zclG>qar#leEk*)7s5r{B=mgQp%#psM6XEZCLD6b|U*N#U3ruvA#wk#@6>2 zdb#jkE44D)%p4yl?UYBs8fC~i{`l_pMstkNuTK|wq+{VlUy_M1s4UBz+k>iyoAYsw7NGD8G=%Dc z`&S@BccG51pmGUX=niUp4Xdbi;I_Rl!T%cD+beGh+SRCMwj}36`6w7iiX+Cu1m}cp z8MI_=4VXlL6<(sP71kz^=1jiUDaOdaUHD<c?rQmUVFf1auh%Cj($#N{RlI(6r7+IF4Jm#W_sG(xe1686FZtTPK@`8D&m!-R yVh7aYV{#>NB?1NfYw-o%;hbQ^Yj~HI!^YJIS2Z5OOEe$g>V2{&m_zpL`~LxrB6ZII literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningAbstractCompany.class b/out/production/ProjectElectroTrans/Drawnings/DrawningAbstractCompany.class new file mode 100644 index 0000000000000000000000000000000000000000..f1229e9a203275f0d722c99f535d0a3257eede91 GIT binary patch literal 5849 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 K@HhMe_5T4T$dg(C literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningConstructor.class b/out/production/ProjectElectroTrans/Drawnings/DrawningConstructor.class new file mode 100644 index 0000000000000000000000000000000000000000..c610ca0c30e298fc46264e5e47ef6b83195dd0d3 GIT binary patch literal 2773 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 D>VrwF literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningRectWheels.class b/out/production/ProjectElectroTrans/Drawnings/DrawningRectWheels.class new file mode 100644 index 0000000000000000000000000000000000000000..d99072e9dcdfa10be59a2deff64d3e61201d8f20 GIT binary patch literal 2027 zcmaJ?&r=&^7=Avo$%b@WVj#4XpH(OcP*7AGGFjez_xf$0XUDv z80rvGp=byrA`ri=-_?goy0tuXb@8@Qa0Mc#P0Mu82!vAUnR-M~uOg=55Hx}0SXp1Q zOl#R0nk^be$;sLki#eg`HCy0l{=mnXdK^K6inxZ?WRbSLs2%G%I|l^?w3};trDN>h zsG$i-0=ui1DuyF)Je8h*MJpM9RKqc}2pnEE+>2J_&XvlYMWgJ`lZ&AhZ7SL|bf8n9 z(H~!5bB8XK_0^(TaE8YOqK@Ha?UK!$##DYc#CK)VGb&C9H0`=C=#E*Ka?AFLp`5!9 z#L$IqNpFvUk{VCX$ez6#Qb-Hbvvd&45;e60AB)T2ehmXSMI1|HTT&ySrgHqGXQCJq zK!RGnrC}Ivlk_|KijlRgg6__mZjqMb>Xu8IdaLz)b=iQjWpe3Yo?4%ZcVALACso-| zL&@4phCoB!w2XkrX??LoPapkYTACB?Y}!oIo! zhicRp5IO2NIiNvX{vnSsq>@8G8XW zS;SZfwj#dwJXi_}bd$7~-5a~s9D)0zjG0o90x65Sb|8b){s1Ak;)|7Ax8$xS_RGZ4 zrtC_&V2qoR|D*ef9h5uCclv^DyN=6+o;2K|z2rpkiNJZ`J@lS>zl?Ty&%AZ-k@tA} zzV~SREAQv+Z@i6xF7JD9%X{uU-TvC!*#46Kb#F_CN+%toU7{g^*%)qMPQ|Bk`Q`<> z{kOnhCeymhH()3jFxba&z2MsAdjj9pZelesz;;=;mP&@xowx0k%4$`Z+U2a_;ibgs zd#lC);qx`|!GV^kCAwN7tCvbsrfYB$wVY)c0`p*Ha?+HZTI@Apu{)zrNyvM6NwPl9FjQ442 z%#zm+mo3E~{RM-X~} zn97|Kt$#93Ad9goz~6YUGG?NGU=zptpQCFo@%j_Iv5AxMrM|~FOn{}4aA+iwj8t!l zzP~-Xkc=e5#f792A6$q>`pL&aaATE$N%;i7XF0R9KBA?t<^b}v!v3Tb=5PKx5PzYUnUlCu zo$?xUWPUO+nD4KS5iUN%n?Sz*5g!D)k|^43ytWf^hYzqhNUXvNageL{m}Nt_=I33< X6#qu)nc;65pYbk6>vPN*I0w1X`|ZOIot1mFAP@=C12GTOe@KC>i#sfG-xG2_c9^6`?TpAS@6W zFKf#sqcm?NFBNpXXr;|cN#0q~iWS`w=#Is&WOp=5NmqNrXhw@b)4Xn&)vt=yQ? z%WkMlBU;g>Vt*JBvoqr`eYbyFkezGByb~R`c&t$^hglm5F=x)az6XZKE?ILEgYsNt=1b zZRkts54 zlWAMaElg>PZX^}233Tq(UIHPB+(rolbvSR)ocb@Z5?%peum$Ib@Zi_6&U%zbQc1-~R5S;0F@(3lk+>w=k%b?2 z=fZ6-qqM}CNP5+J9Xg@qY_q%~@J)Sh)(pKIC$&<(s9T4#rnyjAtg%$zu63YnyLfSB zQQyJ*N}av;UQ5-ZUUQMwip6Qe*4dWfOsS-o(?!j)bW6n*fg?}Vv{R}o-WTZoe^Zj{ z)rEczaRUUN?!X%{Qr68pgPBMvCsoe|T6NFTZ3UT01 z+6kQEcgIao3^9UAn>&MvRdftKLeJ&az6Xe|;!sO|;1}#;g2iFKZ#WPM)V6o=;b2d2 zHWG;V3$toIqO>GtxAwE{eig^+Y&_kj4J}U0ZnJPTo98v3w73-@9-nXFaTJZrbw6u} zkhga9qJx!o;yk)wp&MUw{~Zpx*i5pnetd*6;vgxwvx&_eq%qF=rS3E)NRgDz(9Y*d zlav(t{umibeiuW2r2j_05PxBXH{ZaU9)67MbMHr52eX4Ufc%Ar%nI4TAL-8P7E(aD wk82cdOiOl6yLYjcmX8HxF-5mNoOSP=!&`g?shQ^gJT7w=qVz7_!w2a47gWU$-v9sr literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningTrans$1.class b/out/production/ProjectElectroTrans/Drawnings/DrawningTrans$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d32f276cd70b603321a2cc26f3775c979a63321e GIT binary patch literal 817 zcma)4U2hUW6g>kA3%IpdYoYb4wrIiH5>50)V`55)M4*Y(_JOBi8DZ*nrkNce{vBU@ zRuf~4=@0Nn8Sie2*d`_>lezbt+_~p|%+FunPXW9@HHQR}E*uXjq#4#)dMu8GvK?!< z6@&NHDN&O~_*QDgkRJ13BtnLba;4jx2K@WQ(=0N`y2yFB1dn04X81%&H3+LyZ{Khg zmL4)}l{yn?{b7rrlrCoeL;O`sqT9$)3zt32BhTP8#aqiz`k$(z))zcn#Ug{NO(KHz{&-_3tX`jc!2h_lh?hA(brc|OmI_?Rx&wBwe3r+3w z;D8$$;WKisW4Zs1W_5;h9X&F>sLS}px#4a{;*@w-`GF2;_$^_Fy6@rvLtz?uVIfps zTZHzd4yjbHp_DK?0S`kF=2vN@tMr9fz8Ebv@`zc(I@uDT4@i;+)W3n9{>XiS`#Cyu zUvb6R`v~V%3=0HPGq^%9J%cw1x-t9&2U#qlfNLm{#yzqdc!bAfpU^k1kxk+*>7`@U rE=7QL0Ez;ZkU4ZIqILeFoaH#Gg8O70Y|_0IGn?2Zn~QrQC!hHZXj;9L literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningTrans.class b/out/production/ProjectElectroTrans/Drawnings/DrawningTrans.class new file mode 100644 index 0000000000000000000000000000000000000000..b1cd67f23341c7aeee45fcf8519f0e211930a239 GIT binary patch literal 5013 zcma)8ZBSh06@FgW-Mj2w2oM*tSz=;9g(ZZDl_*532_abpLPI1WpDepq*kswo-6aIS z8Z|Y>HnFiuwXNFL*rv6q^&5r!AbMC#ndx34I zFniyRbIyCdo^#&!_y7L*QveU);|i3aT!Tx88y*(bRZ*B$YG9 zjf}~x>!@7FJR)Z-(@~8Yg_=WgnnP-AIg2^0gUDUi|?648bDR?#|Qis^8G)H9}1eRe6eKpN2aXR^+2wjPvdZ!$@X* zxC8Yf9oEr`b&R8gz@jldeMPy5Of5pUhV=>!MOuEglm6zpCOS2dh-EuSI7HwT2!m<* z>cc@qCB$QPvWWe7KF1PX2!-e^2- zpB}=Lj>o}_>NIk5IzDUG35&GZPDQbHeAthij%gg_5yXPcxx9IC-US)^aZJZ7o>1_| ziFw;hDasr12z3&y*mV@dAR_N8OdvQ_sBJUsRvE|#YeBOtaEvfs zTe{Z0^e!Xui;wR%~|*kE)0l>%Qs#5fTxi+EgZetC*!cVof*QQ&Ph$*CO4l zJElgB7j9T*7a*m4yn~1c6h-n!cJz?C+(@!RWzweV&1^PCh9RrjS7gs?Sio7RKN}~G z*1`^$>jj@o?tqca^&4`F zP>CK%rHsrL(P(6G8}E}kK5@KYcH!ZyOzvrOcK0h4PQfOB-C`eZ62$xK!w#6_~oO?XN`Os1Fm-{37%#Bm2n91*TUaM%HJ_EkLD|A zxrhd?+PG>rS5;hX;HrbGYq*=Ud%D~~w@aHtXQzjmYYBL+qN@z=^PqAwfe)jW^B_@C zLp0R#{kamWsjLYNRJRK2aVuXvt1(Dq?IV&7l9J&2E{QuagD}(Eic`ePIdTdJwp&iy zAfWqri6;v%&g0wo4&yJg(>O!@GJBa+7f%V`yEsemoFa@~;hqQIBRv4uO{#WlC{tw` z&hebeN*@J+_`aRt7bzrht_z2n+5)b5JQxmmB+LOfLoSY5DX*mza2LVffn{_lfO{MU z*A)z|D;Qi?Fu1N@aGh;1_2E^T=@!j+%`})d9e!Y2HA$`FU}#D9TP5e~n4qF*E6qCX zbmU+o&AXSGxX(0kjdfJP#1MXH7hVWIV(iPP^mUBcs()vz-ot!1UWbpvn$O^RKOFi9 zTLfke=IG~sRcKVGbBJ7k7J8jHEVp?sqqae4jTWt;Nb?u5a|eS7zB;O~i6Olo^?duT z#)Ay*L)_hh9ei}|Mz6z%Jp~{3$Pc>{0S9{rjAOE8l( zsJ7t(%@ot$hP(Wd?M$QX+!|7}>*(R&zmEH5MF)g^l>F7}wcCa45^hzn3X=(!2mW8m=E&J+>f0&fFT^lqYh7#1y7UsvF&LRKPh1BaClN0g39GedP&l=B%V$bb+ACSPu5CPJFJtv4r*ShMH;w<7;g%r%he{A#iyN~@=h(F z1w3zIb z-@kZcK1Y=9XXpKjJ@+Dh0WUeN8DDeiMgi3~@JqZy=!Vqa@GD#*=D$$u@oT)xzV;=x z{s!;CMQsWC^e)`gIf@UsXWhKL@C0xZpTo<$SHp)I_G`GJA;zzw5C6p4n`~UZrPKvH a)HO$Y%P^0RIJ#)h0BaNMsWRhVwf8^Zxpbuf literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/DrawningWheels.class b/out/production/ProjectElectroTrans/Drawnings/DrawningWheels.class new file mode 100644 index 0000000000000000000000000000000000000000..91ec1cc695a98f8cffd31b28b1b2a6de4f29e128 GIT binary patch literal 1982 zcmaJ?-%}e^6#g#RWJ8*^X&|&fp`cI#q(o6s3D!y|B^Zho1Q8XMuq9i^r|{;CPyQE$& z5k;Mf`Y>W>5V&+48Gr-c^b3c9IF$qEx2atEXD0qW?q}Gm_gwUX`@9tP7ma8m8`bW?EY+ zP!r8sIju0G6%DzsC>1Af$c|UBf3i_2kAlMwKu8jHh`gtY-sA43{@YK&!a4Y@GB;weh%8M9t-b6%>-+KeW<}8r% zqVw^QG)LfWDIgFdf22;KNq*TGnc5z0!{AajdHTgyZ!6b^R3c`6_$wx=K~kTM3cY3WX`d z(K&zNjA`n{bV0Li-BvL#(D__Vr$JTmnLz9Ro3e{uU1;Yat%1O+{MX3ai$_+W%o~>L zYuqLI_Noxodoo2zvGhSmW-ukAveNbFzt4Ja|C zC^OWN<$AP|-)lsg<}<_lQ&uoWn|8!8Otg}y@uLdHX*WWYQg;)hBvMMZXyk^Zr0Z??BmhCjbYG|2Y;z!zRmNfhN~ uu9pe9#Rb^lIaXl#SV$HV4C}*f*KZOZ@EN3LivK&9<1R$$6MTx#(fBWa$mg>F literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/IDrawWheels.class b/out/production/ProjectElectroTrans/Drawnings/IDrawWheels.class new file mode 100644 index 0000000000000000000000000000000000000000..80d649d9c08588d394b5679f4b62b80229302037 GIT binary patch literal 206 zcmX^0Z`VEs1_nn4ZgvJHMg~!rqQvsN%)InseNPZGJR>zVrb=vAjgzy(qCDBQv?! z$i*5V=$xOEUu5kG(HWdyT9lmXmYI_Zv<%61J&+k}j0}tn%s`hiFfaif!^*(M0CE&N O0|!t9=n{}P0~Y`;>NCUu literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Drawnings/WheelsCount.class b/out/production/ProjectElectroTrans/Drawnings/WheelsCount.class new file mode 100644 index 0000000000000000000000000000000000000000..e88ad8e498c1ecabb9001a0f8c1dc48e6894bd49 GIT binary patch literal 1297 zcmZ`&T~pIg5Iwg^`Vms75hzqpMAWtj1qHua`51(enJUf{a2TILiEWsW&ZH^4`h$GX zqQdCt@a&Ir+`X+@l!i$zyLkVQ;(*$;0~r(E;&G5AeGK^ z6O3B>jZ#-?d!$ug(edn7`AuurCC}sqB{N+vK)@{4%9gur`3`5dDOAroASUyF*#r{L z?VwuQdujQE32dJlR)eZThi-Q$5i2@YLkOt z|K3cYOYaMLDp{hXE8A-h51#1Q>S@dZrF-3Vfvc~D;M{gqj8JEsrz9&myhQ47LQwX2JEJ6}LM<-|KrpTUR@C<_Sp>z1V z{?@QC_&j68jL+8mwSy_Wrmv3C+ML*Le*aap0&xYnwW z(0OzJBy+DoGW-o&0{Fi sN~>XMMWmI{BGS@Nkv&G7^=Q$WQY#g`L^VP^XKC(Gd&~ta5-x1}L}VZ*YE)(a7; zDph&tODjc@`q0PxfIiR*2_+(Z@6-AZRXwx2sf}&5vOIIbbLKmVr9#8Xo zcG^WU(qC9b7a|Oui>4*bSV5wyiWelR%y8Ql)_w$0^eQ-`B8IaJeN89(M~0>~L$j|l z^e1z(&4-PzNhkd(1~AAFw#^mW(u@sqmK^tVb#82=Jv0->5W}^}g!7~G%=wf4Pn{Fz zsCM5ube`6Ja87F9JAWi<-#NcJhqe2Osl@Wa%-3V($%Oa+MnRnNb<=gdE*0-mZ6Y|2 z5d{}iByf?T=X5z3LL0(f7G;Kx#BiqWEN9qaLr_7LJ+AMHr3%A9 zGS`@duaS`lj;lz?)57F@!4krd;G~LIC8!WMLp~x%<241Zt9S!fPDTE_N}-BrZF8H7 zl5DNkod(EDHPaZ5U(*<|=q(j*;~j>CIVb-JvO6h#QiLZ^FlJTy_r$60%fgvKV#bdtArIpNHLF$1O3gc_kL)9H2>BDlw zrF%l#*rfYnvkYBDv%K$jVU#!bWw6RMoua7dCZ}ejfJ4RIN<}g()>?UrZpGZSN@8A< zc@MVs{$)v3BGHU#+Ev@)J2!>BX_l*De8Lc5ER5Sken!pph#KoR=U^&9*gAEh#2z{a z)Mf{@Z>h5$&`vajI}v<_&lP+jZ}&@v(Rwdv#-6z){I2!*G|x-6Y3(!o)JOtf(Fky55ohR;BCn^1?-WNu$(s9W>L6O;SKUw(d;NE6tr?n8v#_UZ+)>W+u_p?_dY6 z+IuvHTriCHNme}t`Wnp8iXn?x8k>!kpJ_9Iy0O~Uc&@E+ce8PCTjLn!{gWS38euvx zo{A@jf=|$s8tOa*OZA5ip``kiLv;W0Z#)B}44fr{KJ=iU#sLgt&^=-iige>AC#3}} zx(UaT!v~a+#6F~g1YIdllJpkGO{%7>ZydKsQpkqBGJbfEXh&MErkOaPWTpZ!@G2R676QrRW7`%52$pfd&2PYq!_Ti1OZ5AQqU^xO6kmY!R%q^{b%D@TcU*JFPw^G)L7@7}1)U@(1{o{6miC?k*&h9evol=bo?oJHK=8{rjKJ5rB75ABGQp z2>}^H2r|TOYL;rL+|1g-{+gj^Cc{vr#d)29m4tst#xTMR!40l9wk=W@g<6*J3`QA- z^Ll;1pf`1cAyU4t>?v90ft9s2xiBI)Cm|~1JYridk>R~$<^ijmoxSGr1O0h#uP3| zcu~eQW*A0K6G3%0xV0)sr8-Mt%pxTrEhB?DhI4&dN}9zRoT!xclxCZ+Y%wHKr^<3Y zh}tP!k#SX=7NX?K2Irbkz9i#ip_E9OryOCtiq|B(F5?Znd8!8vYlLk}H+B_j#x)O4 z?+sAuG%e@BSd=E>nqYa6VZkHIKoYlC9!VGi6^pl=dfXWd6!bc07%Qt9zti5Wa$`-Y zHc1mL>oujht{AG=yUKvItni9QDl$>OZ^Fsrd(Y88FrX-fW=d# zqEkxWo?fRLV>&k`_`tm*!_|Jykfk3p9Xn1xIJMM(YI|!-bUk{OCx&oEZyPnfq>8d5 z12^@mm>W{%b=@*8LuuXS*0x?ZL#WW*X5AmVo$gWZYx)j)4}0G&CRqp{Qpt=a`+FMW z16#Af;A3noh|MrQ#ytt2h(3PGFx?+ZRol~dc-ASyxsFRp&C-p1h93so?K(O@ZYf&5 z$<67quJ5#4xwEwmXif#L?YFpx`~Qrho1&mJn-$gK)NZ+?Y1}9@71QLVgfAFo&eY@u zRYH|v^1ofFYffEs<$Uza0Rj5cvr3XryqNZ%o=E$jv-d%Ii>_ma*0)HTr9VA)7|Q$( z_LJ>)gI3`LO7J$Vvg3ev=0c@$`Mf_;vSf~B9y=tDnv%rm%%nPfmYd)O#Hwvk7Q9xAO|a5fQxU=NzH}#aNjpP!reJ*X&EI2! znE2oi@JAWXY`K+S++@$0J^P*ST<7dI z2O`iFhFHF^l|&jN791NHWEsXUjlq!geE(HfYbglRFd;s<>L3t1?%STZY>38ejAMc! zvs(+j4nJ23!&tvp1fblnV#>m_jcd5hknJOmAPm+H*PFp-&M=WLL?lsluY(R3Dv*LA z-^7fCSsS-7cTCa`p_*Gf*lB47R!<>^I~MNRxQ9H$XkW~e8iy6v4cYWG1z;G=*XzAj z6>ZF$KBYrm4Y{ZJiNkdMALA)(F~qCVr~F46f#7T1&NdG}dfRQXWKE3rmKO%*``8#a z6K9yZoG`akW^mqd-ID&gXWC3dCAiZ(8T1BM)GnW4E`Qdp3(K%-cB5=^OP~5hHd>(n zI5DI)WjAc{T3|{TyRfqhrk_;ns%W;Qq7CV#YNKqnGx>gxi{rs2*0|Ddq@t0I zZF@>_g;}~A3A!fCam?+Y(*V80xKH{4ohqb_B~_gN4p#gD>sy3bAUOm^at$uYi5?1z zSfVe&M{Eoa={!iVFAjkp;W0@=s}YYJO2tF4LtKgV^ym>L4{^f@{3G1%nF{^CGWcr# zoh6Y*jQG}RsXyQuHqIqeI!&g8CwNMcU%TQ1 A8UO$Q literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Forms/FormConstructor.class b/out/production/ProjectElectroTrans/Forms/FormConstructor.class new file mode 100644 index 0000000000000000000000000000000000000000..57eae2a06a84401070f5c61c15e6743ffc0194af GIT binary patch literal 4238 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 TaVJTt^IYZUb^HN;!t(zCX*hSU literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Forms/FormElectroTrans$1.class b/out/production/ProjectElectroTrans/Forms/FormElectroTrans$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f332303ed8fceb01155b9dc2f7df1473a8b52a73 GIT binary patch literal 1418 zcmaizTTc@~6vzL=ZD|=wMQ(!1MZ^L^!Mhd_EUhgRC>J5|$)O!!O}pFd4pe>e!4KoB z31Z@duO`092Qr@7(hCZ)Nq1&We&@`&{O9NIZ{GpTW6g&;)Ej8vXhai3PuzC$ZdiX~ zIhj$8z3B+c9iC=rQv0SmJVi|Ed??~aGkga894+7s{cpsf2#cZ$%R_0YaMaEhY>RgD zSy52Zp^!7CWvW?*`q1c>4*|3p2y$FPJ44s`moT($C`Tx{_bx3gnPcck>3iOW-J)sj zg%>?*L9Xq`v+ZM@Zl8qiYh<+}l^W zlrfHRP5Kt>qUEvLI>9lit^Re*Rm@Wy(;l3XyH)F5j(fPz(6CFhWf)8?IHG7#%iM5z zr#l`MO5_F2oSN|vj|@EKc!CH`vrJvUGX$v2w3$%{j@&Tc%hO6<>8hS`%xXy(jw}e% zQVe~ei&QkaMM*~OECpywnU-8R$nQvJQ|#o((ysfM+Y*kc&!@%)txSgA3nC6rQ~JSW zsrKz`no7${5+CuwOj(fY(xrs63_~GLOy`LKRX3mUN;y;kwer0KMF1dc-Uk z)Nhw|b@Xq+Gg{|pH%qIw_{YY-fQ@~H@tIC_^yon}qi-C~>DyJJ5XAzWi1(r~#Ax40 z*oPp&alD}K9NjjA2G8MS>(; mt7+XyrFADrkO#?^d~~aq$Om)^V41wMC4e-oeq!`!==TQztx{tE literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Forms/FormElectroTrans.class b/out/production/ProjectElectroTrans/Forms/FormElectroTrans.class new file mode 100644 index 0000000000000000000000000000000000000000..fbdb89b0a0c4cf09f11df8450c2d0aa94bd010cd GIT binary patch literal 5326 zcmb7H30Pd!75?u4nPGAXFecHsB*b7GFa?P*N{OigQc)6VNQju2_+TFJlHtASn@33O zVyf0I)}?!EYuj|STCGbMOmOLQ6tOcM6_w>GK`it(kf{j#E&gj4hWq6)Obdt{GP*@H|(!vn?^4CeU=$$4*&eraH9( zIb9;Db{zM1+)k02u9rANVVA237bJ$491BKTA9Ovdj5SJ}8N%qINKLPnILpOQ6F$b- z0*yy~j?qkTigP5+RR}Tf6k9UN{!1lVl>O+IjB7oL^8~6CZ^GX;hL;Ic=5MW;x;{Ui ze`xBOsr^&e#ux*b&&mAZsr~tTrfyR9+9cX>p+JS<=p)%SYoy<5wf2&u+h!6bikCl+ zqZbDY;^;u9V$#J7lVo`9rTvPwK9#y8Hee$+Jm3S7ikhPj?GreDI-df=q(L{MGJkvi zp8WlauM5?#dn7h1*CagG1Xg++JrhN*zsW{z%xP@3?38YIY5S~ECyp&BQB3SpJH1@s zBtI&YqNlP!GZ}TZzuoN;S14y!1OUFvcM2?Px3w{oVU%qQdMYopX^u9cF)PHe!y|mZ z!~jwPrGpd;Ebj``=UCXHRt`!GVVHi(>Q12V=bDp~vsiFtZa_z{OJX#4BM3tWjs*Y+32u27|hKhEw&O#L zDeT*Id-bvFNE!!DZ;&)5D2k+(WqNT`*x{x&zK4Y1>>9m9b zuMj*jypLvjNaEobZlg=usHxlPP#;t#KO|5;tFh3xD~ct z2$@~YC)+0^ZpSB?!Fis7{VpTx=%!AJofg`YzK2_GoS{TR30}{4N_+};F==T74%yPJ z+bUjkI;lC?HP;r3y!4D;;I0keNzw{@TH+quOJ;L})5QX(&e+{_4R>n-cP8j%{*WB@UX-q_>8~;@}k=qa7Jz2W0Xs~ z%T>^SP9?R^3!La}E4YaZIo5aiV-jCbvL!(7U?w?XE~e35zojujE}1j=a* z%N#46R+V9qqJBc<-pW%!QVdF;>3NVUiL^G-pVDdzCTrL5&Y6R+7pll2JD4|ljy+b;8PHqn>p(=;~9@F;%UW z8 zMkNxz;%J^Ii;H<88Wk}q%0-+pQLK*)bC0!K=WVatOK5FS8*nU}1<3r7@aRe3*KWb= zFYx%m zG?|dw(pomFXQQHmsdnxeQi5U(tX>x$x4 zfw-Y4ZYqk`1md+tadUmyLs-{Wl33r`oyIZc*Qt2 zxeF(;g*)3ify>6RjWatqx^f)ay{VYmVrPC{U>#g7?Xkf1uRV=uxq0wP! z9Ebf_gd4CJx8X!yw8))Y0D%+Rc% z=8{0Osi@g7L$isR4S{BqgKar{U@KeIZw~eALj9UhzbVw$g8n29^f4MflEcSoW^Mgp z+yUfpHwP;@xGxwqaBzPxSi-@iEe zXy@~_8?9nH+Qcy0g@X=pEw+eTuua^CE5#kq#RPVVN0D*qSmP1Rr=t{y@H70JWULkk z@eBMCk*bKgE;z$f0fX9#dqHIW&Ln0s87v}+Dp`} zM7@lteJ_Mc7W|3+kKoVv3)@oSAHZMPTZ1xD%J2LPsr`)K`)8r|??UgnpeF=-^SM$z QJPxqspO9jKsKS!}1HqK9u>b%7 literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Forms/FormTransCollection$1.class b/out/production/ProjectElectroTrans/Forms/FormTransCollection$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8e0a371d9b0aad6126bb5057a4768530e9b9f773 GIT binary patch literal 1714 zcmaJ>U2{`K7=E@5JtW=IwA4aHJ`I?rmC&mA5v-KZ*kCAy#vp#poaQXefpgBr-EEuk zil5-6zrj04C^ItSwc~{sUi%056OQkmgwr;*W+uCP-sk;%-gozpe}4T9z#_g)V*rB= zQXEGx#Bi!2Rj7-0tt&UuWf=sbX?z*w<`{-d%h$Opq*gmruVg(QC;}}Jj;jC3Dy4$8GwnSu#Wf`_*M5jg1 zZ5yE|lWTtDn+1l!{B$FYaU6Fr!SR|6I(2An44J@P7eO4SMjV=c<|6y9)fn&S-4GK}vlC{|%Ox*^Pc-!rW^#cBrUalyfx964O+axZYqSn)_xhU@Yb!M3WmIWEVD>v?e@iOm&`Ig3mX zvSb^p)?d~AUe z6s)3TSeB7CYO`siigg@((qkfS^-Vt%k*3-$y^9<-EVpT*aas5qEtA0lZrb^{Xt}I# ze2QfThd5jFzZVoG9}m`kSEcEO^>&NnGdov~5^dLy48wf>e@s%YseWxv=R};S?v{{y#*yYtI5~>`yS__SH^dNA0Z3ePg`zipm(_>>L^dCiy z_S`b=g_&nyh1q9t3ePe8bF8>R>kt^NKJL&u*)v|nUHYS+^9ZSH5gtO~3EKD(-{BW1{0WVhFf4^lb{^Yo2A$nzv03z*MW@fv ipsu8FpL`DB3p}7bMNik4_&S!1;~UyDq+@4H87dCjIZ7+1U|` z$@i7-)82FMJ@>rsdEMdlpPoGrV3XV#MF?dPgbkFVLJ&J<9yd=mWltp2{Y^WzWy~Q< zP|=c1C!Gy~vW8{*r=b$lB8VE84nq*%W@m=7P3pHRW2UpMb}D7{I!QY%m~~7OC@yJ? zte~#FludI4GX#saWXuz3GS4;@piMnlCu8j5Aj-vq8(< zlrm|YPA5Y#n_Yv8DmSCyC z@W|=i60_-561$dSD}91;RbrWdMp{lr`R6a(mw%B;P2?x3)T#WKGT#aVE72sFkxFKr z-F>ufkGDbBvzgS?ERsH{tz)*}N>x zsMAt@VrNK4T`PB{+NwamSqZz|K(jJPRpGSOUG3a#V1wF;I<}q4>g5PFUTWTUv&TwR zVlzd|Kc0X2!u`D3`z}0?KbIflZ1lpzQQU&KqPNw+Hrz_HXnMQo|N3l+@%5^ftAN&rl2HI}C_Rw7A2-5yjhZdGED`?BkYVX&UHJgr{fpl1DEgsLwxhVKo1W_DOA- zdb;L|^;{d%_wukh-DjX*k*)5xyX@8ht9Q_i9krJ5j1p%~DP31Cl|~%{BREc^ ztmSO6`pl7()0(og*6v{|W4akJ+|agce-tNiR|Fq4a5sLT5WD6Hr>ToBJeYI@wf#N? zf32=znH!e@%w|RELk8}}eT)qr>g>%}R=P9!K}!W=;J}vTkd@9dE7N61@jwI*8u&0C z^5UdP(ezOS982Bt6=MC$$ zri5b+u`?8GbNi;&owQle6nck-ScoSLJcXxe2ql!+JJ_F5k};uqY1^m6loX|2�{R zEQwNZwXzVuY~Txcj;fG?YsA@sv%Z1!`Gt7iz^~%hSQY6Mg2n)*%4v4mN;CNd1uZN_ z@Fg#sYQt}~GYKoxZr){&(70bjnG)qI2EK}~xfXV}m{9^O+_erfZT4Fk3RH;~c|)z_ zX=T*;my~edU?vHiDT?JvrR$iVrPZl1Wq@a+7{^2e-!yO*ld6oX;^J5*ou*wQLp@eT z6?>CzI-MTZ#sD+Zz4W)a1%E5SWQ}^6aUU!nB{*8_b9hDF$*&hxEy1Iz5&Q;2L<^-g zXrsdQ`KUEg}Gr^6noW0r;ugty1a^ign&rfs>BWPwO^>2K1(b+UDU&l2V4^Dnuq0(!G5 zb0puH>`$A{NQOCk`Bc{`V79pW2JN(=nW?GOPVi85dopdgm7q(dI-0HB?ln{U%}i3w zy~VIIkYwtecZF;~Vb~m{y=P{*Lk)Q%Rg%lBrHJQ~<#ks0WbKHIB z(u$?XxHzmfj986UxTO+o;_yJVTIaiHkDX1rJ)BFuaBPQiP@QavY!r~yYmSPf%%Pry zxy09T$&Jj}?~y0As-#B8V%J5B&M&GM3~d+ba+KFzZgI`!7H<&Tbcu%)b+{5+C0p6B z%^Rxfbl6{Yn8StpFHv;$@sAVp6yYy4;Zpl&pOqt%aAR4 z#@bdX2MpOLn|Q8U%?=rIi{86k%?=x~LC=n;*-=B*b5z)0vd^8my`%{YOODU@a{% z@8v8N5x(peTp5)q!Zj-v@l6+EuTaNNNc@aND5gFp>5(6D^vEwTdR&PnJ@WGfM6M+q zk_KY)gM?n^=LbFVvwTp^%!ah)^*2bjbqLj=5ex+>x;&) zxUu|YT+>|^Yv}9_#~M4wa2+?V?`}MU>&CHq3~P(H>xy6t!CSgxo5s;PhAqYQ?F7kY zr)JaPPWI@@-XhYzB6!e6xlN-SF0LPS*L(H4Ra_q^f`cwfTB8h~ruHFe7ByInT5Q2AbYeE{z#JqI$8ql7k9l|m^Z8c1ich2kIL&v@dDQbAun6D9 zV*CJC<40H`%QaPPWw}mPa3->{a0B7BynzTs_&yC6smLKaffMb^bGWBNEnIg7_m`(? zaWO&YBQ8`Mez7+6L=L~G5Mqzy@EC!Xm+;9Po*=Y+5~JNUiJH1`d@hI2s}=rj$>CQH za9lTuFY*GvoWl$5Y_z);qcsbBL0cR^TTHZh1+>8_XoCT?L81+7 zv=3b9EI8-X4J01>k)F_+SB!(>?r?M+5Lc0A3t` z2Lo_T0iML$-Hq{zar_{MzoH0h8_(kJfE<3rNe3tYq$dB&$zD$Wr7$_%7%xAIe=SVs zaqmA06N{7oEKG(u`LDtxLWBLJ7-ARsjTLBM(p<(sYh++8XLzk(3T(nwzKafE6?$<4 z?!+2Ah_(0xzx6)Lbom0-VS-rSMho7=&3q)@f_JeIKjHs8RG?Mrutn;zmBDqZG-JEm ziZ3H#*hI3QpxA3{poA`X_d-#G*1KZtD_tJn7dPADzdM4o7(Ce~FRx=UZE4RxHvIb>x zO7_ZHxe;MGD~seNc|XeKHJKypn9eI|LaK*wlQ@%8NEac4cUHr{NDlu~w7Gh%0ne~J zJ*#Dy<>GoWFyTpy+zcT__9!03os>zPs#X+p{3fM{N?DQU3_dx5C#lX;%#=?D2v_@r zt9`<3g*?I=J;IeG6kRbtONx&Ns8#yZDt&5fvpj0gQ;IOM z#HoNm>U@TEzCqZNUXFU%m8m~K>JO6ohkp)r_P-wWB$ZdPFIBShZ>`H==7=w3dwe9;~1vbye&HjF@VHm waO{+J{<+X@AKL3f`+Vr258dWNcMuvNwYj8}#9J~Lp2n1-|4B;HGK~2D0m(A`0ssI2 literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/Main.class b/out/production/ProjectElectroTrans/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..31bc5c2ae6f6f3cbbb540ed1b5a15c4ace566d85 GIT binary patch literal 495 zcmZ`#O;5r=5PeGvrL}wriXvXTi6-_3U`z}NiAj|Mgv5ASu;P+-YnI~w@*;^Q{s4cJ zaRy8{sC#&mnK$$1?R@XVD}RD4Z*;vI_z0 zxIJ=E6lnHRlgtCgp^TsyX=xdALK<$x5Vgd>3xq4l<+kw9_6DFU^$t z>wnNxefaHKpcVf6C0ghW(uJ8sJ;fGXc5%jwafA|Gk6#Xg??+gnETAYT=1-OoFDtrA z$TYWZ6Z-20)KI6)#SV69jYt_5kv597k1o6tYpe&*z#ehT O?4wC?0tb}m(E0`~tzu39 literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/MovementStrategy/AbstractStrategy.class b/out/production/ProjectElectroTrans/MovementStrategy/AbstractStrategy.class new file mode 100644 index 0000000000000000000000000000000000000000..52e9e7e57c0903b8b733108505f799a1ece76852 GIT binary patch literal 2267 zcma)7TUQ%Z6#h;!Nl0>l0)j%zHKjn%reeJ{wU&akQJ}O5RO%Zqap2*V;SH z)h9*QbWdsuiS?>mpufW8>i-z$ljuQj0v9y;1bni?esQP9IORq(lH0B^kR`MRG~N=o zRH3rrRQDXKRujM>jkocRLhtqwxtcqNRz0z)PC^9<*|hN(jc8oNCE~8w*5U3Wd)M7p zPzAvr(-@auY46uP%ih~}Q{11_m_kNjpinEB&YtBiTQ%3Nn66!|csf27!qXa8gm8R? z0@wD%aaLna%Akcusp>l?F^_i>cu(Uhatc!&veY-0ZHE=}Vi>E|Pt^Q!XNn!hc?tZ! z#sWSd7eBDV%=mFOf9`1%BCC6S-}4GdFAM){Wx_P5%jh3KdL)YMKhrhC6KE4VUntBm zfu5uPoCB8jncw&EeXq%>8S%>pYvyr~MAw>mVEOWPiD-WRC1vV$MbKKCl;8U=oxlUq ztZbub#NMqpa_RJ#s-=q66Q^vg*dpOzyC_%X$}%R|#1UR;2ERP-oJHgo@pgE8y^&{? zV>g%%;{2|2b%S<_qt5;bmHiEgb9BGpI)eNB%Iye5i5kO(SoyYifQMWu6j2IravTLG zmi-;wzjERONEq;}H=Sb*=S^${&Og)Ipj~GE71DJQ9Q#QoJAaPB?4@%IXGhO5D%_$T zw<*F3BZHZz(aTvM2GGyk2QbR3a0-K7*sKp7gk=ysqK(kX;A<)(8D{VeXHh)%(3Pb5 zZ9}31nuz(hq()M|z<81U0~60Zu9rnHE@zs|#*m=-Fx9(AW~1aZ&ea4)$Z3qRnqrIx ztRyZgm+s;BJ6ia)SqK7mQ3^)5c1EjKS*Kf&x&kBv--r5N5AnYe>i+KfLUkUWbiz7v}F?=Wr?d=b-F^0*B7umKkafC)KqLEmWU=N*qs`CpWPywLyv literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/MovementStrategy/IMoveableObject.class b/out/production/ProjectElectroTrans/MovementStrategy/IMoveableObject.class new file mode 100644 index 0000000000000000000000000000000000000000..75624333cd1acac49e7182a93fd04456d8bffc81 GIT binary patch literal 349 zcmbVII|{;35S;ZF{~z!GHe%A416T>71Qdmch22vYiNr*nPr<8McmNM2Zu~Ub+3YUE z&g{(I?w2coK57ZIIIMH}~p5*i~m zuXz?90u#g$p=~?kAHDaI(rU+s^`S?wgzFpL6VkTh5h`fj{Ph1(H#U@T*=fA#{3&t5`VHY9=66siwL CV`60h literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/MovementStrategy/MoveToBorder.class b/out/production/ProjectElectroTrans/MovementStrategy/MoveToBorder.class new file mode 100644 index 0000000000000000000000000000000000000000..ec503b3eb8127afb62c4379266dfd46e5d8296fc GIT binary patch literal 1199 zcmZuwTTc@~6#jWA!nX_uDerh~yhZPhF>%b+AvYdQi5YS0aYU@*j6@}*qOL0_`?R;6fF#0CSS@GveLh{FS!7Ln?2?SKSnv~G%em)l)6ohlcLd{Rq+6=ymwZ8tUKEI}8FW7rdnJ-yVLFd1m#^mwRi3jKo%TEDi!B68& zva&QYntkanV8^s*!z~)+whX;Zqu~YM4(^hr;vQ1uk;xw^S{9v1pF+!Le!!<3Wlqsf zX4l*F3Azu^Lv~-ojvqi%51}eYl%%*oeFOz)#E4!9{UQ2e1UXK#1n>3$>fkK7%c6i{sNQjc9)#Hcb8`-%Zc=rf|RPYBU+q08mM~xTdF?sAK>EeSPnhz1;-UXeWOq4kH(=$n+4;fq`C4>e2et&==J8W49%tkOD8Q1AuSNo z70JmZ6}Vm0Zig+L(pyb>>tU!J!x;-%jW%j@Ze0`4SvbF|G3C9iQva6cNP*UzTb1{o zua%@l$dN6_=)Z_qRnKQt#&|8#=pDwEbnNrsRfltG04I9@gZQ zR)Ypp9+=M=K=YGOloC;40EYbnsU)wCLl^ zN0_OkL@zFQimB}9-;+%rnzP&#jGn3c{DIXAgc zJ`^ejkdQ@561jMmeu;vLJGiT0UPB7^7zQs(o}x*nyx_++jf_Nppy44FNWdx;#}@s# zW>IBlM^_IY+~1 za{2I-#(wx|r0)Q2l6O2p<1_LMJKK=PbD9wVmI$8Fvy2xmcmus;0ZYj*P<|pTUrmI6 zA;8YQV_@Hz4>d97ST|bMO~)~Fj`$e?^w?A)^ajH8HHgw3h}ksck#vAd<0aXC_+paA z3MO0{i$qmMY3}(=%zgYsb0d# literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/MovementStrategy/MovementDirection.class b/out/production/ProjectElectroTrans/MovementStrategy/MovementDirection.class new file mode 100644 index 0000000000000000000000000000000000000000..5b5f329a533af645e5dd4a542cf46459dd74a1fb GIT binary patch literal 1232 zcma)5VNcUw5PsgZUANk~Ibg~J#W~yt%0vOt5&{8COokXMOBO$Mql}WSHKm*Jn?FfM zB1EI%vp>ps@5`nmO0p*H_3piU?w+UDpTEBT0I&{2MT8-@?RV^!?S*C-SfSngQ0@md zoxpB{j_<|6AnQ;NWr*y)W5`$fIhPk1yeg(6&a322|Gj{@qC*#fioGB5jH^15JfOUG zng=3sO-C9d3~Ii*UfJC;8K&P3(@(<~GAc%NT*nOpY`DH>GmI8Xl|!pzm0ingmUrrh z#L3W*#Z46xIwo<8hWMMX<+WSXyJNX+duN|vu{cn@;aW#W#z27RJ6_Wm?7#s8{*;b8 z$T37$9M1_?88U-Vy~-D*Y7B}-LQKUFk3o+i$-R<}8O(AK#3V-yg<@$a8K_~uMBecC zNP%R<@$8rFR^1NXSap{o%m10AG>pa!>5AX5+^Q8g9IA&Wdsd5J)Bh^NklMDx1Ap(8 z6;MuS2Sh~<4;(Ua(`kBE*bb;vDwe9WE-MYUC)Uyc7MFBonDJH(2F>)_LBoFTaH5(1 zp8nb8IsU2F=1Jl#{RGO|IA3dkEG??Aw4cJ#S^}voUq+ru=l3y7bq~nPk>!`xMd}Mi z&oK6hJcc=XM#Y&#`I9IkBJvl=@(L}@W==7F2FCLv7xEucL_g2MJRXtvm~Ms2KJrxB zB}f8no~%Si>dfrK32uL;*UOMpEN~VADIOs@^iKDpC|OEre95RKr?d!}p1`E~9jqpG zA(=I~3)QSCT@tkx?IL0FsV}mO;R%*{5RD#$@r@ADccl~Lk0A+XS{9BfoO_CJG~pDY m!bzN>c#IS$bKW3Bl7j#fWV1w~08U0Cs^`-$<0+j-@a#9sM*~>^ literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/MovementStrategy/ObjectParameters.class b/out/production/ProjectElectroTrans/MovementStrategy/ObjectParameters.class new file mode 100644 index 0000000000000000000000000000000000000000..e120092bebfc6b599cc7a41615d8f40d4eb11948 GIT binary patch literal 1024 zcmah`U2hUW6g{&ntSnn-DNv=Y727K1L0%ePG$ww;NJ7=vhF4tJ5vEyo%{XnvCx4JH zCK3}L`~m(bQqTz z@xi$HrgzT!>a8#R5m#J(Vz9cO8CXkK-tdssWmb2r!<+|Chnen`2-Hxg@*WC0<#dN! z42H_Z28s?gJ(N&pSU>kK{buM#gIOagek>xPo-m~9M;!*Y%|EDTu?)C0sTPC%JPtTR zp)Df*`eM}M^33mrlqt63z8`jcDRewb+G;3h>izbAS9`>eJ&Qlio8{i=f#;F?BEE{| zL1oIyi3oy_zlx>!5=Y7p8A{6+9WIrifoS`Bi$1*$)7*_2(uN`0c1jEFc^Y5HK7T3n zBIQ-qA84LXBSJSwH=8WUMV_VkHVrRA3O)S2>C_bhMb!S(1rr&+PijZ4Ea2M_O5)m9iSi6ScB_iBe zAUs6M%;3#uNQc)j@=F-rVv1TKhM6J(qmYPE!d>dFRrqRD1FDUmSZ{1kh>)ELoW|~i z=qcM1tbM0f7PK@~qhgVi-Xw)f$fHbNh3>XYmt)djznaRWz5SV-RUD9KncGA1QpUSS Mo=tPyr^rJ6ABu{WI{*Lx literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/MovementStrategy/StrategyStatus.class b/out/production/ProjectElectroTrans/MovementStrategy/StrategyStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..bd08a97b001002b1ca0df2cc7f61e74b1ab9ef0b GIT binary patch literal 1172 zcmah{?@!ZE6g_Wk*R2+r1wkf=Aj$^HGADeiBS!q8xMpIy>Q0(6Tmb$^KTj4Ri4_3Uu z-D@?D+~|#SO`K@>4>R;)1apHZ$kufyKa0E9v?UnF|ixb zgc_fC3|ZT&2b`sdRHaa?axm6vey2yvU0Sk}YkjYMz08TS!&X#tw>@cbsCQx)b9G}(4llsSVN4>Y56I=^$PuA&zkpfdi_E4OW*t4X3K$s;XEj7!X%V?dt#TGLASDhAl+JWo7JgQ?Cj LSFlQ43NL;G;+pt# literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/arrowDown.png b/out/production/ProjectElectroTrans/arrowDown.png new file mode 100644 index 0000000000000000000000000000000000000000..2d51306b4744a97dc0e59ef5af54c90401b042ab GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^av;nBBpBqPKh^;$rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wM11HgV3Ed38EKA;$b7zYxari^^vKIdQ2Go@u_m3|c@o z2Ll_U5Cbzv2@o+Os=fURW#3jNzvTANa`edDA)u%t&?FXS*L))~ zQ!zu{>D|nm)w{pVsTM4{f1rBDoWnJnzr|IbJs`F}>-h;rMG+gr$aRnYA3ZxIU$T?i zDCn5p#-h2a1%w|Rd(KntX!l^_O5>-Gk1j1bf5)#;#QD>svrBd^bK1M5_wk-M9!<9+ z4a5)#LSlL`Bb!mi_OOBf~Y`RR5rG-K_ zZeZH+`QeTOuQ-bixp(dptoc|FtX`L^eIsX`zQxz?a@*D=O}793I8l0eWPV~;&bPeX&Zolj kR^9LWxcxrg)ur3_Pftwk{2Z#54U9_$Pgg&ebxsLQ07u_nH~;_u literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/arrowLeft.png b/out/production/ProjectElectroTrans/arrowLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..2c406e851276b58c97852701a1cfdefe9432fda5 GIT binary patch literal 1005 zcmeAS@N?(olHy`uVBq!ia0vp^av;nBBpBqPKh^;$rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wM11HgV3Ed38EKA;$b7zYxari^^vKIdQ2Go@u_m3|c@o z2Ll_U5Cbzv2@oe9Oqx+J-LZPkx|gGBUowGl|KxN z7Pvbxz3OO*z5PCQ-rk!Ykuxs8eOqbs`Pet(5~q-}PnByXTeWqby>(mpX0=yUvzV^b zs-#_Id&0z-WtD6%-HCaj8(FgDg!xsO*OTAP`!ezJvu8W|e;!xfv&J>;*_xf#56C|I zr&Ygjsf(n`{+x<6kG9TxZg*Tz;BukvCz;p-Oz)2s1U1aEtdDble1XY&zTKX9z5Z#U z7c>^t&pTMEdsFQ|<9$BmperRc=eO!Dco;A4ba~sob}qNye^nlcO`THd*8aWVUg(22 zM`gDxd!q5ioI!VW&zJM1_glQI_}@#-P6^doTX}tPGq3fh2KUQJM$ZlFZkOHDd3i7+ z_W9iRGtM6<{U3TWKH=!9brtPN294HU&GG$>w>RA2-?rUsyIfx10;|q>oppPimG^o$*ZF_e(#I7--~dMGxZL7 z#jZ_WpUs|<>Nox0t_$7okJi-jo-%#;|N6?E>(uyDm;T?u_O#DXeRk}po@tx*S>>*( a<#hX!T5R}r!CYXRGkCiCxvXdO-0aPLhR}zp}k(v{bS`?a>SrWluY;Iwoqp;Rn-V&#xNT{O3 zhw{sTiUd$i0vW@g_hQ~B8=#yNTrN1s-6<$FFD11oGcVmUuOu}OsA?n$LTp=Ew;{Kiamqs{|2T&C-z+)>WUuD?z8@| zOi@eK3JP4{p_pEsCh_~s-1iOJr~pUwiewF?vTeeyrP3Q6j@$&xR>;p?xnzj;f<{Ei>D z|H*KrhAmxfz1-f7+U`pKRS$+%ynl1xaP$GG#|`ECzr0D%is4&%O{!mR+3O2$KlW_f zASR`wdFAj=zSq}-rIxB$)UG+rX|=~j%6yCC#Vnz@U)kp8mE7OA=>3K{OZD`>oLduT z&|a2Yw#oeU)uZ)4wWny?uePwYmygX$UckL4{{O)_m;Nk#W!T?i?tMV7{Z@R3sN$WC zFQ!W5{5w|rJrh~xyNxOLOmdKI;Vst0Q-|& ABme*a literal 0 HcmV?d00001 diff --git a/out/production/ProjectElectroTrans/arrowUp.png b/out/production/ProjectElectroTrans/arrowUp.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a03831d7aab179980ec7b6fd5d56167851a114 GIT binary patch literal 1012 zcmeAS@N?(olHy`uVBq!ia0vp^av;nBBpBqPKh^;$rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wM11HZi_D!CU8mLX7!Eej$wK7nRQfa^g}WJkxxA8MJ_G z4hA+xAqHlU5+Gz?W@KOmvl$q|n3+K$V9XFG0AYg!0tFdZAmV&S0)-H4pcqhf+X4oL zjs06fO+ePFmbgZgq$HN4S|t~y0x1R~10xe%17lr7lMn+lD-0aPLhR}zp}k(v{bS`?a>SrWluY;Iwoqp;Rn-V&#xNT{O3hw{sT ziUd$i0vW@g_hQ~B8=#yNTrN1s-6<$FFD11oGcVmUuOu}OsA?||7Y9eAHH4MC} zwu%ck8Zf@I{cX7JW{f^t-GSP9GiRD^PCI)bZF$tQ*H3!v>(28%t3TN_wK{*f*@gM* zcTK)(T-|wl|C%W#-{Tj(PG}d}IPHbz^$SbIs(WUyvepUuKW%?WbX{|YT=(;%&Fgn; zmc7q)>0z6la)0)j?8>gVi=8Lpd_O-q8db1qeL!MaXVvwrwc=3+PK$i|_1o`_iGv7t zMWV2}vkJ#jKId3={|BOirT2?6GY`5Mc%}gufaO zLoG{VlIKmz^>}Z)xVgkHp#O#@=On3v>>akAu67MA7d^s?rFrKZcsZ#m?c=#Q(k!25 zeaQLnQEu<=KQA9Y+qA+-<;CZ<-{bB6e7F`>zet!J*gAB{3joJE-Dnp zDLA{#Z?e9R(`{aU-To;>1xp^z_IBbf-muZkmaTu~O#V49Ja6;6{n_l3%z1}3@A0>q e{