package ProjectElectricLocomotive.src.CollectionGenericObjects; import ProjectElectricLocomotive.src.Drawnings.DrawingLocomotive; import java.awt.*; import java.util.ArrayList; import java.util.List; import java.util.AbstractMap; public class LocomotiveDepotService extends AbstractCompany { private List> locCoord = new ArrayList<>(); private int countInRow; public LocomotiveDepotService(int picWidth, int picHeight, ICollectionGenericObjects collection) { super(picWidth, picHeight, collection); } @Override protected void DrawBackground(Graphics g) { Color brown = new Color(52, 22, 22); g.setColor(brown); int x = 1, y = 0; while (y + _placeSizeHeight <= _pictureHeight) { int count = 0; while (x + _placeSizeWidth <= _pictureWidth) { count++; g.drawLine(x, y, x + _placeSizeWidth, y); g.drawLine(x, y, x, y + _placeSizeHeight); g.drawLine(x, y + _placeSizeHeight, x + _placeSizeWidth, y + _placeSizeHeight); locCoord.add(new AbstractMap.SimpleEntry<>(x, y)); x += _placeSizeWidth + 2; } countInRow = count; x = 1; y += _placeSizeHeight + 5; } } @Override protected void SetObjectsPosition() { if (locCoord == null || _collection == null) return; int row = countInRow, col = 1; for (int i = 0; i < _collection.getCount(); i++, col++) { if (_collection.get(i) == null) continue; _collection.get(i).SetPictureSize(_pictureWidth, _pictureHeight); _collection.get(i).SetPosition(locCoord.get((row - 1) * countInRow + (col - 1)).getKey() + 5, locCoord.get((row - 1) * countInRow + (col - 1)).getValue() + 5); if (col == countInRow) { col = 0; row--; } } } }