Working version of the refactoring DrawboxEditor. Added ToolBar in Editor
This commit is contained in:
@ -8,73 +8,98 @@ import java.awt.event.MouseMotionListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
|
||||
import gui.render.DrawboxRectengleRenderingFunction;
|
||||
import gui.render.HitboxCircleRenderingFunction;
|
||||
import gui.render.HitboxRectengleRenderingFunction;
|
||||
import gui.render.ShapeRenderingFunction;
|
||||
import model.Entity;
|
||||
import repository.Project;
|
||||
|
||||
public class EditableCanvas extends JPanel implements MouseListener, MouseMotionListener, ListSelectionListener {
|
||||
public class EditableCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
||||
|
||||
DrawboxRectengleRenderingFunction drawboxRectengleRenderFunct;
|
||||
HitboxRectengleRenderingFunction hitboxRectengleRenderFunct;
|
||||
HitboxCircleRenderingFunction hitboxCircleRenderFunct;
|
||||
ShapeRenderingFunction renderingFunction;
|
||||
Entity entity;
|
||||
BufferedImage image;
|
||||
|
||||
|
||||
public EditableCanvas(Entity entity, BufferedImage image) {
|
||||
this.entity = entity;
|
||||
this.image = image;
|
||||
drawboxRectengleRenderFunct = new DrawboxRectengleRenderingFunction(entity);
|
||||
public EditableCanvas() {
|
||||
drawboxRectengleRenderFunct = new DrawboxRectengleRenderingFunction();
|
||||
hitboxRectengleRenderFunct = new HitboxRectengleRenderingFunction();
|
||||
hitboxCircleRenderFunct = new HitboxCircleRenderingFunction();
|
||||
drawboxRectengleRenderFunct.subscribe(Project.getInstance()); // подписка: Project получит данные ввиде обьекта Event, содержащий данные drawbox при отрисовке последней точки из 4-х.
|
||||
//hitboxPanel.subscribe(Project.getInstance());
|
||||
addMouseListener(this);
|
||||
addMouseMotionListener(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void drawing(Graphics2D g) {
|
||||
if(renderingFunction!=null) {
|
||||
if(renderingFunction!=null&&entity!=null) {
|
||||
renderingFunction.drawing(g);
|
||||
}
|
||||
}
|
||||
|
||||
public void setDrawboxRectengleRenderingFunction() {
|
||||
renderingFunction = drawboxRectengleRenderFunct;
|
||||
}
|
||||
public void setHitboxRectengleRenderingFunction() {
|
||||
renderingFunction = hitboxRectengleRenderFunct;
|
||||
}
|
||||
public void setHitboxCircleRenderingFunction() {
|
||||
renderingFunction = hitboxCircleRenderFunct;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseMoved(MouseEvent e) {
|
||||
if(renderingFunction!=null) {
|
||||
//System.out.println("moved");
|
||||
if(renderingFunction!=null&&entity!=null) {
|
||||
System.out.println("x="+e.getX()+"y="+e.getY());
|
||||
renderingFunction.mouseMoved(e);
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if(renderingFunction!=null) {
|
||||
//System.out.println("Clicked");
|
||||
if(renderingFunction!=null&&entity!=null) {
|
||||
renderingFunction.mouseClicked(e);
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
if(renderingFunction!=null) {
|
||||
//System.out.println("mousePressed");
|
||||
if(renderingFunction!=null&&entity!=null) {
|
||||
renderingFunction.mousePressed(e);
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
g.drawImage(image, 0, 0, this);
|
||||
if(entity != null) {
|
||||
drawing((Graphics2D)g);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
g.drawImage(image, 0, 0, this);
|
||||
if(entity != null) {
|
||||
drawing((Graphics2D)g);
|
||||
}
|
||||
}
|
||||
|
||||
public void setEntity(Entity e) {
|
||||
entity = e;
|
||||
drawboxRectengleRenderFunct.setEntity(e);
|
||||
}
|
||||
|
||||
public void setImage(BufferedImage image) {
|
||||
this.image = image;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -86,11 +111,7 @@ public class EditableCanvas extends JPanel implements MouseListener, MouseMotion
|
||||
public void mouseEntered(MouseEvent e) {}
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {}
|
||||
@Override
|
||||
public void valueChanged(ListSelectionEvent e) {
|
||||
//this.repaint();
|
||||
//System.out.println(" Canvas image = " + image);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user