@@ -1 +1,2 @@ | |||
/build/ | |||
/dist/ |
@@ -0,0 +1,47 @@ | |||
/* | |||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license | |||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template | |||
*/ | |||
package mvcgrafik.model; | |||
import java.awt.Point; | |||
import java.io.Serializable; | |||
import java.util.ArrayList; | |||
import java.util.Collections; | |||
import java.util.List; | |||
/** | |||
* | |||
* @author ahren | |||
*/ | |||
public class Figur implements Serializable | |||
{ | |||
private ArrayList<Point> punkte; | |||
public Figur(){ | |||
punkte = new ArrayList<>(); | |||
} | |||
Figur(Figur aktuelleFigur) | |||
{ | |||
punkte = aktuelleFigur.getPunkteArray(); | |||
} | |||
public void addPoint(Point p){ | |||
punkte.add(p); | |||
} | |||
public List<Point> getPunkte() | |||
{ | |||
return Collections.unmodifiableList(punkte); | |||
} | |||
public ArrayList<Point> getPunkteArray() | |||
{ | |||
return punkte; | |||
} | |||
public void clear(){ | |||
punkte.clear(); | |||
} | |||
} |
@@ -17,35 +17,37 @@ import java.io.ObjectOutputStream; | |||
import java.util.ArrayList; | |||
import java.util.Collections; | |||
import java.util.List; | |||
import java.util.logging.Logger; | |||
import java.util.prefs.Preferences; | |||
import mvcgrafik.util.OhmLogger; | |||
/** | |||
* | |||
* @author le | |||
*/ | |||
public class GrafikModel | |||
{ | |||
private ArrayList<Point> punkte; | |||
private ArrayList<ArrayList> figuren; | |||
private Preferences pref; | |||
private Figur aktuelleFigur; | |||
private ArrayList<Figur> figuren; | |||
private Preferences pref; | |||
private static Logger lg = OhmLogger.getLogger(); | |||
public GrafikModel() | |||
{ | |||
punkte = new ArrayList<>(); | |||
aktuelleFigur = new Figur(); | |||
figuren = new ArrayList<>(); | |||
} | |||
public void addPoint(Point p) | |||
{ | |||
punkte.add(p); | |||
aktuelleFigur.addPoint(p); | |||
} | |||
public List<Point> getPunkte() | |||
{ | |||
return Collections.unmodifiableList(punkte); | |||
return aktuelleFigur.getPunkte(); | |||
} | |||
public List<ArrayList> getFiguren(){ | |||
public List<Figur> getFiguren(){ | |||
return Collections.unmodifiableList(figuren); | |||
} | |||
@@ -86,13 +88,14 @@ public class GrafikModel | |||
if (daten instanceof ArrayList liste) | |||
{ | |||
figuren = liste; | |||
} | |||
//lg.info(figuren.getFirst().getPunkte().getFirst().toString()); | |||
} | |||
lg.info("Einlesen ende"); | |||
} | |||
public void endShape() { | |||
figuren.add(new ArrayList<Point>(punkte)); | |||
punkte.clear(); | |||
figuren.add(aktuelleFigur); | |||
aktuelleFigur = new Figur(); | |||
} | |||
/** | |||
@@ -114,6 +117,6 @@ public class GrafikModel | |||
{ | |||
pref.put(lastDirectory, lastAdress); | |||
} | |||
} | |||
@@ -70,6 +70,7 @@ public class GrafikView extends JComponent implements Printable | |||
* Jedes mal wenn die Maus los gelassen wird, wird dder aktuelle Pfad gespeichert | |||
* @param g | |||
*/ | |||
@Override | |||
public void paintComponent(Graphics g) | |||
{ | |||
if (model == null) return; | |||
@@ -79,9 +80,8 @@ public class GrafikView extends JComponent implements Printable | |||
model.getFiguren().forEach(figuren-> | |||
{ | |||
drawPath(figuren,g2); | |||
drawPath(figuren.getPunkte(),g2); | |||
}); | |||
} | |||
public void drawPath(List<Point> path, Graphics2D g2){ |