KAAASS
This commit is contained in:
+11
-5
@@ -1,12 +1,15 @@
|
||||
package Applicatie;
|
||||
|
||||
import java.awt.BasicStroke;
|
||||
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.TexturePaint;
|
||||
import java.awt.geom.AffineTransform;
|
||||
|
||||
import java.awt.geom.GeneralPath;
|
||||
|
||||
import java.awt.geom.NoninvertibleTransformException;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
@@ -25,6 +28,7 @@ import Listeners.MouseWheel;
|
||||
import Objects.Entrance;
|
||||
import Objects.Path;
|
||||
import Objects.Stage;
|
||||
|
||||
import Objects.Toilet;
|
||||
import Objects.Wall;
|
||||
|
||||
@@ -91,7 +95,6 @@ public class Panel extends JPanel {
|
||||
addMouseMotionListener(new MouseMotion(this));
|
||||
|
||||
addMouseWheelListener(new MouseWheel(this));
|
||||
|
||||
}
|
||||
|
||||
public int getPanelInfoLength() {
|
||||
@@ -144,7 +147,8 @@ public class Panel extends JPanel {
|
||||
AffineTransform oldTransform = g2.getTransform();
|
||||
g2.setTransform(getCamera());
|
||||
|
||||
TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0,0, 100, 100));
|
||||
TexturePaint p = new TexturePaint(background, new Rectangle2D.Double(0,
|
||||
0, 100, 100));
|
||||
g2.setPaint(p);
|
||||
g2.fill(new Rectangle2D.Double(-1920, -1080, 3840, 2160));
|
||||
|
||||
@@ -161,7 +165,9 @@ public class Panel extends JPanel {
|
||||
|
||||
public AffineTransform getCamera() {
|
||||
AffineTransform tx = new AffineTransform();
|
||||
tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY() + getHeight() / 2);
|
||||
tx.translate(-cameraPoint.getX() + getWidth() / 2, -cameraPoint.getY()
|
||||
+ getHeight() / 2);
|
||||
|
||||
tx.scale(cameraScale, cameraScale);
|
||||
return tx;
|
||||
}
|
||||
@@ -285,9 +291,9 @@ public class Panel extends JPanel {
|
||||
|
||||
public void removeObject(DrawObject o) {
|
||||
Iterator<DrawObject> itr = objects.iterator();
|
||||
while(itr.hasNext()) {
|
||||
while (itr.hasNext()) {
|
||||
DrawObject nextObject = (DrawObject) itr.next();
|
||||
if(nextObject.equals(o)) {
|
||||
if (nextObject.equals(o)) {
|
||||
pp.clearSelected();
|
||||
itr.remove();
|
||||
}
|
||||
|
||||
@@ -25,15 +25,15 @@ public class PropertiesPanel extends JPanel {
|
||||
|
||||
DrawObject selectedObject = null;
|
||||
Panel p = null;
|
||||
|
||||
Dimension spacerDimension = new Dimension(200,30);
|
||||
|
||||
Dimension spacerDimension = new Dimension(200, 30);
|
||||
|
||||
JLabel nameLabel;
|
||||
|
||||
JTextField locationXField;
|
||||
JTextField locationYField;
|
||||
JTextField scaleField;
|
||||
JTextField rotationField;
|
||||
|
||||
|
||||
PropertiesPanel() {
|
||||
super();
|
||||
@@ -52,8 +52,8 @@ public class PropertiesPanel extends JPanel {
|
||||
propPanel.setMaximumSize(new Dimension(200, 60));
|
||||
propPanel.add(propLabel);
|
||||
add(propPanel);
|
||||
|
||||
//NAME
|
||||
|
||||
// NAME
|
||||
JPanel namePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
|
||||
nameLabel = new JLabel("No Selection");
|
||||
nameLabel.setFont(new Font("Segoe UI", Font.PLAIN, 20));
|
||||
@@ -61,11 +61,11 @@ public class PropertiesPanel extends JPanel {
|
||||
namePanel.setMaximumSize(new Dimension(200, 40));
|
||||
namePanel.add(nameLabel);
|
||||
add(namePanel);
|
||||
|
||||
|
||||
// SPACER
|
||||
add(Box.createRigidArea(spacerDimension));
|
||||
|
||||
//BUTTONS
|
||||
|
||||
// BUTTONS
|
||||
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
|
||||
JLabel buttonLabel = new JLabel("Actions");
|
||||
buttonLabel.setFont(new Font("Segoe UI", Font.ITALIC, 20));
|
||||
@@ -73,8 +73,8 @@ public class PropertiesPanel extends JPanel {
|
||||
buttonPanel.setMaximumSize(new Dimension(200, 40));
|
||||
buttonPanel.add(buttonLabel);
|
||||
add(buttonPanel);
|
||||
|
||||
//DELETE
|
||||
|
||||
// DELETE
|
||||
JPanel deletePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
|
||||
JButton deleteButton = new JButton("Delete");
|
||||
deleteButton.setFont(new Font("Segoe UI", Font.PLAIN, 20));
|
||||
@@ -87,7 +87,7 @@ public class PropertiesPanel extends JPanel {
|
||||
deletePanel.setMaximumSize(new Dimension(200, 50));
|
||||
deletePanel.add(deleteButton);
|
||||
add(deletePanel);
|
||||
|
||||
|
||||
// SPACER
|
||||
add(Box.createRigidArea(spacerDimension));
|
||||
|
||||
@@ -129,6 +129,7 @@ public class PropertiesPanel extends JPanel {
|
||||
|
||||
public void keyPressed(KeyEvent e) {
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
locationXPanel.add(locationXField);
|
||||
@@ -307,17 +308,21 @@ public class PropertiesPanel extends JPanel {
|
||||
if (component instanceof JTextField) {
|
||||
((JTextField) component).setText("");
|
||||
((JTextField) component).setBackground(Color.WHITE);
|
||||
|
||||
}
|
||||
if (component instanceof Container) {
|
||||
clearFields((Container) component);
|
||||
}
|
||||
}
|
||||
|
||||
nameLabel.setText("No Selection");
|
||||
|
||||
}
|
||||
|
||||
private void fillFields() {
|
||||
if (selectedObject != null) {
|
||||
nameLabel.setText(selectedObject.getName());
|
||||
|
||||
locationXField.setText(Math.round(selectedObject.getPosition()
|
||||
.getX()) + "");
|
||||
locationYField.setText(Math.round(selectedObject.getPosition()
|
||||
|
||||
+15
-13
@@ -1,35 +1,37 @@
|
||||
package Applicatie;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import Listeners.Keyboard;
|
||||
|
||||
public class Window extends JFrame {
|
||||
private static final long serialVersionUID = -1324363758675184283L;
|
||||
|
||||
Window()
|
||||
{
|
||||
Window() {
|
||||
super("Festival Plannner");
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
setSize(500,600);
|
||||
setExtendedState( getExtendedState()|JFrame.MAXIMIZED_BOTH );
|
||||
|
||||
//CONTENT PANELS
|
||||
setSize(500, 600);
|
||||
setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);
|
||||
|
||||
// CONTENT PANELS
|
||||
JPanel contentPanel = new JPanel(new BorderLayout());
|
||||
PropertiesPanel pp = new PropertiesPanel();
|
||||
Panel fp = new Panel(pp);
|
||||
contentPanel.add(fp, BorderLayout.CENTER);
|
||||
contentPanel.add(pp, BorderLayout.EAST);
|
||||
|
||||
|
||||
addKeyListener(new Keyboard(fp));
|
||||
|
||||
setContentPane(contentPanel);
|
||||
//END CONTENT PANELS
|
||||
|
||||
|
||||
//MENUBAR
|
||||
// END CONTENT PANELS
|
||||
|
||||
// MENUBAR
|
||||
setJMenuBar(new MenuBar(this));
|
||||
//END MENUBAR
|
||||
|
||||
// END MENUBAR
|
||||
|
||||
setFocusable(true);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package Listeners;
|
||||
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.KeyListener;
|
||||
|
||||
import Applicatie.Panel;
|
||||
|
||||
public class Keyboard implements KeyListener {
|
||||
|
||||
private Panel panel;
|
||||
|
||||
public Keyboard(Panel panel) {
|
||||
this.panel = panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
if(e.getKeyCode() == e.VK_DELETE ) {
|
||||
if(panel.getSelectedObject() != null) {
|
||||
System.out.println("lala");
|
||||
panel.removeObject(panel.getSelectedObject());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyTyped(KeyEvent e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import java.util.Map;
|
||||
|
||||
import Applicatie.DrawObject;
|
||||
import Applicatie.Panel;
|
||||
|
||||
import Objects.Stage;
|
||||
|
||||
public class Mouse extends MouseAdapter {
|
||||
@@ -73,11 +74,13 @@ public class Mouse extends MouseAdapter {
|
||||
}
|
||||
if (selectedObject != null)
|
||||
selectedObject.setSelected(false);
|
||||
panel.setDragObject(o);
|
||||
o.setSelected(true);
|
||||
selectedObject = o;
|
||||
panel.setDragObject(o);
|
||||
panel.getPP().setSelected(o);
|
||||
|
||||
panel.setSelectedObject(o);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+116
-64
@@ -1,4 +1,5 @@
|
||||
package Listeners;
|
||||
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseMotionAdapter;
|
||||
import java.awt.geom.Point2D;
|
||||
@@ -9,87 +10,138 @@ public class MouseMotion extends MouseMotionAdapter {
|
||||
|
||||
private Panel panel;
|
||||
|
||||
public MouseMotion(Panel panel)
|
||||
{
|
||||
public MouseMotion(Panel panel) {
|
||||
this.panel = panel;
|
||||
}
|
||||
|
||||
public void mouseDragged(MouseEvent e) {
|
||||
Point2D clickPoint = panel.getClickPoint(e.getPoint());
|
||||
if(panel.getDragObject() != null) {
|
||||
Point2D objectPoint = panel.getDragObject().getObjectPoint(panel.getDragObject().getPosition());
|
||||
switch(panel.getClickedOption()) {
|
||||
case "drag":
|
||||
if(panel.getDragObject() != null)
|
||||
panel.getDragObject().setPosition(new Point2D.Double(
|
||||
(panel.getDragObject().getPosition().getX() ) - ((panel.getLastClickPosition().getX() - clickPoint.getX()) ) / panel.getDragObject().getScale(),
|
||||
(panel.getDragObject().getPosition().getY()) - (panel.getLastClickPosition().getY() - clickPoint.getY()) / panel.getDragObject().getScale() ));
|
||||
System.out.println(panel.getDragObject().getPosition().getX());
|
||||
System.out.println(panel.getLastClickPosition().getX());
|
||||
System.out.println(clickPoint.getX());
|
||||
System.out.println("----------'");
|
||||
break;
|
||||
case "upperLeft":
|
||||
if(clickPoint.getX() < panel.getDragObject().getPosition().getX() && clickPoint.getY() < panel.getDragObject().getPosition().getY()) {
|
||||
resizeBigger();
|
||||
}
|
||||
else if (clickPoint.getX() > panel.getDragObject().getPosition().getX() && clickPoint.getY() > panel.getDragObject().getPosition().getY()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "upperRight":
|
||||
if(clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY()) {
|
||||
resizeBigger();
|
||||
}
|
||||
else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "bottomLeft":
|
||||
if(clickPoint.getX() < panel.getDragObject().getRectangle().getX() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) {
|
||||
resizeBigger();
|
||||
}
|
||||
else if (clickPoint.getX() > panel.getDragObject().getRectangle().getX() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "bottomRight":
|
||||
if(clickPoint.getX() > panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() > panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) {
|
||||
resizeBigger();
|
||||
}
|
||||
else if (clickPoint.getX() < panel.getDragObject().getRectangle().getX() + panel.getDragObject().getRectangle().getWidth() && clickPoint.getY() < panel.getDragObject().getRectangle().getY() + panel.getDragObject().getRectangle().getHeight()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "rotate":
|
||||
double tempval = panel.getDragObject().getRotation() + (panel.getLastClickPosition().getX() - clickPoint.getX());
|
||||
panel.getDragObject().setRotation(tempval);
|
||||
break;
|
||||
if (panel.getDragObject() != null) {
|
||||
Point2D objectPoint = panel.getDragObject().getObjectPoint(
|
||||
panel.getDragObject().getPosition());
|
||||
switch (panel.getClickedOption()) {
|
||||
case "drag":
|
||||
if (panel.getDragObject() != null)
|
||||
panel.getDragObject()
|
||||
.setPosition(
|
||||
new Point2D.Double(
|
||||
(panel.getDragObject()
|
||||
.getPosition().getX())
|
||||
- ((panel
|
||||
.getLastClickPosition()
|
||||
.getX() - clickPoint
|
||||
.getX()))
|
||||
/ panel.getDragObject()
|
||||
.getScale(),
|
||||
(panel.getDragObject()
|
||||
.getPosition().getY())
|
||||
- (panel.getLastClickPosition()
|
||||
.getY() - clickPoint
|
||||
.getY())
|
||||
/ panel.getDragObject()
|
||||
.getScale()));
|
||||
|
||||
break;
|
||||
case "upperLeft":
|
||||
if (clickPoint.getX() < panel.getDragObject().getPosition()
|
||||
.getX()
|
||||
&& clickPoint.getY() < panel.getDragObject()
|
||||
.getPosition().getY()) {
|
||||
resizeBigger();
|
||||
} else if (clickPoint.getX() > panel.getDragObject()
|
||||
.getPosition().getX()
|
||||
&& clickPoint.getY() > panel.getDragObject()
|
||||
.getPosition().getY()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "upperRight":
|
||||
if (clickPoint.getX() > panel.getDragObject().getRectangle()
|
||||
.getX()
|
||||
+ panel.getDragObject().getRectangle().getWidth()
|
||||
&& clickPoint.getY() < panel.getDragObject()
|
||||
.getRectangle().getY()) {
|
||||
resizeBigger();
|
||||
} else if (clickPoint.getX() < panel.getDragObject()
|
||||
.getRectangle().getX()
|
||||
+ panel.getDragObject().getRectangle().getWidth()
|
||||
&& clickPoint.getY() > panel.getDragObject()
|
||||
.getRectangle().getY()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "bottomLeft":
|
||||
if (clickPoint.getX() < panel.getDragObject().getRectangle()
|
||||
.getX()
|
||||
&& clickPoint.getY() > panel.getDragObject()
|
||||
.getRectangle().getY()
|
||||
+ panel.getDragObject().getRectangle()
|
||||
.getHeight()) {
|
||||
resizeBigger();
|
||||
} else if (clickPoint.getX() > panel.getDragObject()
|
||||
.getRectangle().getX()
|
||||
&& clickPoint.getY() < panel.getDragObject()
|
||||
.getRectangle().getY()
|
||||
+ panel.getDragObject().getRectangle()
|
||||
.getHeight()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "bottomRight":
|
||||
if (clickPoint.getX() > panel.getDragObject().getRectangle()
|
||||
.getX()
|
||||
+ panel.getDragObject().getRectangle().getWidth()
|
||||
&& clickPoint.getY() > panel.getDragObject()
|
||||
.getRectangle().getY()
|
||||
+ panel.getDragObject().getRectangle()
|
||||
.getHeight()) {
|
||||
resizeBigger();
|
||||
} else if (clickPoint.getX() < panel.getDragObject()
|
||||
.getRectangle().getX()
|
||||
+ panel.getDragObject().getRectangle().getWidth()
|
||||
&& clickPoint.getY() < panel.getDragObject()
|
||||
.getRectangle().getY()
|
||||
+ panel.getDragObject().getRectangle()
|
||||
.getHeight()) {
|
||||
resizeSmaller();
|
||||
}
|
||||
break;
|
||||
case "rotate":
|
||||
double tempval = panel.getDragObject().getRotation()
|
||||
- (panel.getLastClickPosition().getX() - clickPoint
|
||||
.getX());
|
||||
panel.getDragObject().setRotation(tempval);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
panel.setCameraPoint(new Point2D.Double(panel.getCameraPoint()
|
||||
.getX() + (panel.getLastMousePosition().getX() - e.getX()),
|
||||
panel.getCameraPoint().getY()
|
||||
+ (panel.getLastMousePosition().getY() - e.getY())));
|
||||
}
|
||||
else {
|
||||
panel.setCameraPoint(new Point2D.Double(
|
||||
panel.getCameraPoint().getX() + (panel.getLastMousePosition().getX() - e.getX()),
|
||||
panel.getCameraPoint().getY() + (panel.getLastMousePosition().getY() - e.getY())
|
||||
));
|
||||
}
|
||||
panel.repaint();
|
||||
panel.setLastMousePosition(e.getPoint());
|
||||
panel.setLastClickPosition(clickPoint);
|
||||
panel.getPP().update();
|
||||
}
|
||||
|
||||
|
||||
private void resizeBigger() {
|
||||
double scale = panel.getDragObject().getScale()*1 + 0.02;
|
||||
double scale = panel.getDragObject().getScale() * 1 + 0.02;
|
||||
panel.getDragObject().setScale(scale);
|
||||
panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX()-2,panel.getDragObject().getPosition().getY()-2));
|
||||
panel.getDragObject().setPosition(
|
||||
new Point2D.Double(
|
||||
panel.getDragObject().getPosition().getX() - 2, panel
|
||||
.getDragObject().getPosition().getY() - 2));
|
||||
}
|
||||
|
||||
|
||||
private void resizeSmaller() {
|
||||
if(panel.getDragObject().getScale() > 0.2) {
|
||||
double scale = panel.getDragObject().getScale()*1 - 0.02;
|
||||
if (panel.getDragObject().getScale() > 0.2) {
|
||||
double scale = panel.getDragObject().getScale() * 1 - 0.02;
|
||||
panel.getDragObject().setScale(scale);
|
||||
panel.getDragObject().setPosition(new Point2D.Double(panel.getDragObject().getPosition().getX()+2,panel.getDragObject().getPosition().getY()+2));
|
||||
panel.getDragObject().setPosition(
|
||||
new Point2D.Double(panel.getDragObject().getPosition()
|
||||
.getX() + 2, panel.getDragObject().getPosition()
|
||||
.getY() + 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,18 +17,6 @@ public class MouseWheel implements MouseWheelListener {
|
||||
}
|
||||
|
||||
public void mouseWheelMoved(MouseWheelEvent e) {
|
||||
Point2D clickPoint = panel.getClickPoint(e.getPoint());
|
||||
for (DrawObject o : panel.getObjects()) {
|
||||
if (o.contains(clickPoint)) {
|
||||
double scale = o.getScale() * 1
|
||||
+ (e.getPreciseWheelRotation() / 10.0);
|
||||
o.setScale(scale);
|
||||
panel.getPP().update();
|
||||
panel.repaint();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (e.getY() < 150) {
|
||||
|
||||
if (e.getPreciseWheelRotation() < 0) {
|
||||
|
||||
Reference in New Issue
Block a user