diff --git a/ProjectStormtrooper/DrawingPlane.java b/ProjectStormtrooper/DrawingPlane.java
index 80f8b25..db224d4 100644
--- a/ProjectStormtrooper/DrawingPlane.java
+++ b/ProjectStormtrooper/DrawingPlane.java
@@ -1,9 +1,10 @@
package ProjectStormtrooper;
+import javax.swing.*;
import java.awt.*;
import java.util.Random;
-public class DrawingPlane {
+public class DrawingPlane extends JPanel {
public EntityPlane EntityPlane;
protected IDrawingEngines _drawingEngines;
protected int _pictureWidth;
diff --git a/ProjectStormtrooper/FormPlaneCollection.form b/ProjectStormtrooper/FormPlaneCollection.form
index 7377d0e..c0cb0dd 100644
--- a/ProjectStormtrooper/FormPlaneCollection.form
+++ b/ProjectStormtrooper/FormPlaneCollection.form
@@ -14,7 +14,7 @@
-
+
@@ -122,6 +122,14 @@
+
+
+
+
+
+
+
+
diff --git a/ProjectStormtrooper/FormPlaneCollection.java b/ProjectStormtrooper/FormPlaneCollection.java
index 81ece05..e975064 100644
--- a/ProjectStormtrooper/FormPlaneCollection.java
+++ b/ProjectStormtrooper/FormPlaneCollection.java
@@ -5,10 +5,12 @@ import javax.swing.event.ListSelectionEvent;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.util.Objects;
+import java.util.Stack;
public class FormPlaneCollection {
final PlanesGenericStorage _storage;
FrameDoubleParametrized _frameDoubleParametrized;
+ FrameStormtrooper _frameRemovedPlanes;
private JPanel PanelWrapper;
private JPanel GroupBoxInstruments;
private JPanel PictureBoxCollection;
@@ -22,7 +24,9 @@ public class FormPlaneCollection {
private JList listBoxStorages;
private JButton buttonRemoveStorage;
private JPanel storagesPanel;
+ private JButton buttonShowRemovedPlanes;
public DrawingPlane SelectedPlane;
+ Stack _removedPlanes;
public JPanel getPanelWrapper() {
@@ -32,6 +36,7 @@ public class FormPlaneCollection {
public FormPlaneCollection() {
PictureBoxCollection.setPreferredSize(new Dimension(600, 500));
_storage = new PlanesGenericStorage(600, 500);
+ _removedPlanes = new Stack<>();
buttonAddPlane.addActionListener(this::buttonAddPlaneClicked);
buttonRemovePlane.addActionListener(this::buttonRemovePlaneClicked);
buttonRefreshCollection.addActionListener(this::buttonRefreshCollectionClicked);
@@ -39,6 +44,7 @@ public class FormPlaneCollection {
buttonAddStorage.addActionListener(this::buttonAddStorageClicked);
buttonRemoveStorage.addActionListener(this::buttonRemoveStorageClicked);
listBoxStorages.addListSelectionListener(this::listBoxObjectsSelectedIndexChanged);
+ buttonShowRemovedPlanes.addActionListener(this::buttonShowRemovedPlanesClicked);
}
private void ReloadObjects() {
@@ -101,8 +107,8 @@ public class FormPlaneCollection {
FrameStormtrooper frameStormtrooper = new FrameStormtrooper();
frameStormtrooper.setVisible(true);
- frameStormtrooper._formPlaneCollection.buttonSelectPlane.addActionListener(ev -> {
- SelectedPlane = frameStormtrooper._formPlaneCollection._drawingPlane;
+ frameStormtrooper._formStromtrooper.buttonSelectPlane.addActionListener(ev -> {
+ SelectedPlane = frameStormtrooper._formStromtrooper._drawingPlane;
frameStormtrooper.dispose();
if (SelectedPlane != null) {
if (obj.Add(SelectedPlane) > -1) {
@@ -152,7 +158,9 @@ public class FormPlaneCollection {
if (n == 1) {
return;
}
- if (obj.Sub(pos) != null) {
+ DrawingPlane removedPlane = obj.Sub(pos);
+ if (removedPlane != null) {
+ _removedPlanes.push(removedPlane);
refreshPictureBox();
JOptionPane.showMessageDialog(this.getPanelWrapper(),
"Объект удален",
@@ -178,6 +186,20 @@ public class FormPlaneCollection {
_frameDoubleParametrized.setVisible(true);
}
+ public void buttonShowRemovedPlanesClicked(ActionEvent e) {
+ if (_removedPlanes.empty()) {
+ JOptionPane.showMessageDialog(this.getPanelWrapper(),
+ "Нет удаленных объектов",
+ "Инфо",
+ JOptionPane.INFORMATION_MESSAGE);
+ return;
+ }
+ _frameRemovedPlanes = new FrameStormtrooper();
+ _frameRemovedPlanes._formStromtrooper._drawingPlane = _removedPlanes.pop();
+ _frameRemovedPlanes.setVisible(true);
+ _frameRemovedPlanes._formStromtrooper.Draw();
+ }
+
public void refreshPictureBox() {
if (listBoxStorages.getSelectedIndex() == -1) {
return;
diff --git a/ProjectStormtrooper/FormStormtrooper.form b/ProjectStormtrooper/FormStormtrooper.form
index 6993efe..e24fe2e 100644
--- a/ProjectStormtrooper/FormStormtrooper.form
+++ b/ProjectStormtrooper/FormStormtrooper.form
@@ -1,6 +1,6 @@