diff --git a/CollectionFrame.java b/CollectionFrame.java index 29365fb..6f05f8b 100644 --- a/CollectionFrame.java +++ b/CollectionFrame.java @@ -1,98 +1,34 @@ import javax.swing.*; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.image.CropImageFilter; -import java.util.LinkedList; -import java.util.PriorityQueue; -import java.util.Queue; class CollectionFrame extends JComponent { - private final CarsGenericStorage _tanksStorage; - private final GarageFrame frame; - private Queue removedTankers; + private final CarsGenericCollection _tanks; + protected final int Width; protected final int Height; - public CollectionFrame(int width, int height, GarageFrame fr) + public CollectionFrame(int width, int height) { Width = width; Height = height; - _tanksStorage = new CarsGenericStorage(Width, Height); - frame = fr; - removedTankers = new LinkedList<>(); + _tanks = new CarsGenericCollection<>(Width, Height); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); - if (frame.listStorage.getSelectedIndex() == -1) - return; - var obj = _tanksStorage.get(frame.listStorage.getSelectedValue()); - if (obj == null) - return; - if (obj.ShowCars() == null) - return; - g.drawImage(obj.ShowCars(), 0, 0, this); + g.drawImage(_tanks.ShowCars(), 0, 0, this); super.repaint(); } - - protected void ReloadObjects() - { - int index = frame.listStorage.getSelectedIndex(); - frame.listModel.clear(); - for (String key : _tanksStorage.Keys()) - { - frame.listModel.addElement(key); - } - if (!frame.listModel.isEmpty() && (index == -1 || index >= frame.listModel.size())) - { - frame.listStorage.setSelectedIndex(0); - } - else if (!frame.listModel.isEmpty() && index > -1 && index < frame.listModel.size()) - { - frame.listStorage.setSelectedIndex(index); - } - - } - protected void ButtonAddObject_Click() - { - String name = frame.nameStorageField.getText(); - if (name.length() == 0) - return; - _tanksStorage.AddSet(name); - ReloadObjects(); - } - - protected void ButtonRemoveObject_Click() - { - if (frame.listStorage.getSelectedIndex() == -1) - { - return; - } - if (JOptionPane.showConfirmDialog(null, "Delete object " + frame.listStorage.getSelectedValue() + "?", "Delete", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) - { - return; - } - _tanksStorage.DelSet(frame.listStorage.getSelectedValue()); - ReloadObjects(); - } - protected void ButtonAddTank_Click() { - if (frame.listStorage.getSelectedIndex() == -1) - return; - var obj = _tanksStorage.get(frame.listStorage.getSelectedValue()); - if (obj == null) - return; BaseFrame form = new BaseFrame(); form.setVisible(true); form.buttonSelect.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e){ - - if (obj.plus(form.Gasoline.GetSelectedCar()) != -1) + if (_tanks.plus(form.Gasoline.GetSelectedCar()) != -1) { form.dispose(); JOptionPane.showMessageDialog(null, "Объект добавлен", "Информация", JOptionPane.INFORMATION_MESSAGE); @@ -112,23 +48,11 @@ class CollectionFrame extends JComponent { protected void ButtonRemoveTank_Click(String text) { - if (frame.listStorage.getSelectedIndex() == -1) - return; - var obj = _tanksStorage.get(frame.listStorage.getSelectedValue()); - if (obj == null) - return; if (JOptionPane.showConfirmDialog(null, "Delete Tanker?", "Delete", JOptionPane.YES_NO_OPTION) == JOptionPane.OK_OPTION) { - int index = -1; - DrawTanker deleted = null; - try { - deleted = obj.minus(Integer.parseInt(text)); - } catch(NumberFormatException e) { - } - if (deleted != null) + if (_tanks.minus(Integer.parseInt(text))) { JOptionPane.showMessageDialog(null, "Объект удален", "Информация", JOptionPane.INFORMATION_MESSAGE); - removedTankers.add(deleted); super.repaint(); } else @@ -141,14 +65,6 @@ class CollectionFrame extends JComponent { protected void ButtonUpdate_Click() {super.repaint();} - protected void ButtonCreateDeleted_Click() - { - if (removedTankers.isEmpty()) - return; - var tank = removedTankers.poll(); - BaseFrame f = new BaseFrame(tank); - f.setVisible(true); - } } class GarageFrame extends JFrame { @@ -160,18 +76,6 @@ class GarageFrame extends JFrame { protected static final int Width = 1000; protected static final int Height = 600; CollectionFrame Collection; - - JButton addTankerButton; - JTextField indexTankerField; - JButton deleteTankerButton; - JButton updateCollectionButton; - JList listStorage; - DefaultListModel listModel; - JButton addCollectionButton; - JTextField nameStorageField; - JButton deleteCollectionbutton; - JButton createDeletedButton; - private void initUI() { setSize(Width, Height); @@ -182,7 +86,7 @@ class GarageFrame extends JFrame { setResizable(false); - addTankerButton = new JButton("Add tanker"); + JButton addTankerButton = new JButton("Add tanker"); addTankerButton.setLayout(null); addTankerButton.setBounds(Width-200, Height-550, 200, 30); add(addTankerButton); @@ -193,12 +97,12 @@ class GarageFrame extends JFrame { } }); - indexTankerField = new JTextField(); + JTextField indexTankerField = new JTextField(); indexTankerField.setBounds(Width- 200, Height-500, 200, 30); indexTankerField.setLayout(null); add(indexTankerField); - deleteTankerButton = new JButton("Delete tanker"); + JButton deleteTankerButton = new JButton("Delete tanker"); deleteTankerButton.setLayout(null); deleteTankerButton.setBounds(Width-200, Height-450, 200, 30); add(deleteTankerButton); @@ -209,7 +113,7 @@ class GarageFrame extends JFrame { } }); - updateCollectionButton = new JButton("Update collection"); + JButton updateCollectionButton = new JButton("Update collection"); updateCollectionButton.setLayout(null); updateCollectionButton.setBounds(Width-200, Height-400, 200, 30); add(updateCollectionButton); @@ -220,59 +124,9 @@ class GarageFrame extends JFrame { } }); - listModel = new DefaultListModel<>(); - listStorage = new JList(listModel); - listStorage.setLayout(null); - listStorage.setBounds(Width - 190, Height - 250, 180, 130); - add(listStorage); - listStorage.addListSelectionListener(new ListSelectionListener() { - @Override - public void valueChanged(ListSelectionEvent e) { - Collection.repaint(); - } - }); - - - addCollectionButton = new JButton("Add Collection"); - addCollectionButton.setLayout(null); - addCollectionButton.setBounds(Width-190, Height - 350, 180, 30); - add(addCollectionButton); - addCollectionButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Collection.ButtonAddObject_Click(); - } - }); - - nameStorageField = new JTextField(); - nameStorageField.setBounds(Width- 190, Height- 300, 180, 30); - nameStorageField.setLayout(null); - add(nameStorageField); - deleteCollectionbutton = new JButton("Remove Collection"); - deleteCollectionbutton.setBounds(Width-190, Height - 100, 180, 30); - deleteCollectionbutton.setLayout(null); - add(deleteCollectionbutton); - deleteCollectionbutton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Collection.ButtonRemoveObject_Click(); - } - }); - - createDeletedButton = new JButton("Create deleted"); - createDeletedButton.setLayout(null); - createDeletedButton.setBounds(Width - 200, 10, 200, 30); - add(createDeletedButton); - createDeletedButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Collection.ButtonCreateDeleted_Click(); - } - }); - - Collection = new CollectionFrame(Width-200, Height, this); + Collection = new CollectionFrame(Width-200, Height); Collection.setLayout(null); Collection.setBounds(0, 0, Width-200, Height); add(Collection);