clean code lab 5

This commit is contained in:
ekallin 2023-12-04 17:38:58 +04:00
parent 00465b2d74
commit 2e31988a1b
2 changed files with 11 additions and 66 deletions

View File

@ -35,7 +35,7 @@ public class FormLocomotiveCollections {
public FormLocomotiveCollections() { public FormLocomotiveCollections() {
formElectricLocomotive = new FormElectricLocomotive(); formElectricLocomotive = new FormElectricLocomotive();
formLocomotiveConfig = new FormLocomotiveConfig(); formLocomotiveConfig = new FormLocomotiveConfig();
_storage = new LocomotivesGenericStorage(pictureBoxCollections.getWidth(), pictureBoxCollections.getHeight()); _storage = new LocomotivesGenericStorage(400,300);
_stackRemoveObjects = new Stack<>(); _stackRemoveObjects = new Stack<>();
listBoxStorage.addListSelectionListener(this::listBoxObjectsSelectedIndexChanged); listBoxStorage.addListSelectionListener(this::listBoxObjectsSelectedIndexChanged);

View File

@ -6,8 +6,6 @@ import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable; import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import javax.swing.border.Border; import javax.swing.border.Border;
@ -47,8 +45,6 @@ public class FormLocomotiveConfig{
private JLabel labelCountWheels; private JLabel labelCountWheels;
private JSpinner numericUpDownWheels; private JSpinner numericUpDownWheels;
public Canvas canvas; public Canvas canvas;
FrameLocomotiveConfig frameLocomotiveConfig;
public JPanel getPictureBoxObject(){ public JPanel getPictureBoxObject(){
return MainPanel; return MainPanel;
@ -67,7 +63,8 @@ public class FormLocomotiveConfig{
super.repaint(); super.repaint();
} }
} }
//класс для перетаскивания типа объекта
// класс для перетаскивания информации из labe'лов
private class LabelTransferHandler extends TransferHandler { private class LabelTransferHandler extends TransferHandler {
@Override @Override
public int getSourceActions(JComponent c) { public int getSourceActions(JComponent c) {
@ -79,7 +76,8 @@ public class FormLocomotiveConfig{
return new StringSelection(((JLabel)c).getText()); return new StringSelection(((JLabel)c).getText());
} }
} }
//что бы цвет можно было таскать
//для перетаскивания цветов
private class ColorTransferable implements Transferable { private class ColorTransferable implements Transferable {
private Color color; private Color color;
private static final DataFlavor colorDataFlavor = new DataFlavor(Color.class, "Color"); private static final DataFlavor colorDataFlavor = new DataFlavor(Color.class, "Color");
@ -107,6 +105,8 @@ public class FormLocomotiveConfig{
} }
} }
} }
//для перетаскивания цвета //для перетаскивания цвета
private class PanelTransferHandler extends TransferHandler { private class PanelTransferHandler extends TransferHandler {
@Override @Override
@ -119,13 +119,16 @@ public class FormLocomotiveConfig{
return new ColorTransferable(((JPanel)c).getBackground()); return new ColorTransferable(((JPanel)c).getBackground());
} }
} }
//для обработки нажатий
//для обработки "схватывания" label'ов
private class LabelMouseAdapter extends MouseAdapter { private class LabelMouseAdapter extends MouseAdapter {
@Override @Override
public void mousePressed(MouseEvent e) { public void mousePressed(MouseEvent e) {
((JLabel)e.getComponent()).getTransferHandler().exportAsDrag(((JLabel)e.getComponent()), e, TransferHandler.COPY); ((JLabel)e.getComponent()).getTransferHandler().exportAsDrag(((JLabel)e.getComponent()), e, TransferHandler.COPY);
} }
} }
//для обработки "схватывания" panel'ей
private class PanelMouseAdapter extends MouseAdapter{ private class PanelMouseAdapter extends MouseAdapter{
@Override @Override
public void mousePressed(MouseEvent e) { public void mousePressed(MouseEvent e) {
@ -133,64 +136,6 @@ public class FormLocomotiveConfig{
} }
} }
//что бы wheel'ы можно было тaскать
private class WheelTransferable implements Transferable {
private IDrawingWheels wheelDrawing;
private static final DataFlavor wheelDrawingDataFlavor = new DataFlavor(IDrawingWheels.class, "Wheel Drawing");
public WheelTransferable(IDrawingWheels wheelDrawing) {
this.wheelDrawing = wheelDrawing;
}
@Override
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[]{wheelDrawingDataFlavor};
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return flavor.equals(wheelDrawingDataFlavor);
}
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
if (isDataFlavorSupported(flavor)) {
return wheelDrawing;
} else {
throw new UnsupportedFlavorException(flavor);
}
}
}
//для отрисовки wheel'ов, которые можно взять и потащить
private class ComponentWheel extends JComponent {
public IDrawingWheels wheelDrawing;
public ComponentWheel(IDrawingWheels _wheelDrawing) {
wheelDrawing = _wheelDrawing;
this.addMouseListener(
new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
((ComponentWheel) e.getComponent()).getTransferHandler().exportAsDrag(((ComponentWheel) e.getComponent()), e, TransferHandler.COPY);
}
}
);
this.setTransferHandler(
new TransferHandler() {
@Override
public int getSourceActions(JComponent c) {
return TransferHandler.COPY;
}
@Override
protected Transferable createTransferable(JComponent c) {
return new WheelTransferable(((ComponentWheel) c).wheelDrawing);
}
}
);
}
}
public FormLocomotiveConfig() public FormLocomotiveConfig()
{ {
Border br = BorderFactory.createLineBorder(Color.BLACK); Border br = BorderFactory.createLineBorder(Color.BLACK);