GrafikModel und Figur eingefügt
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* 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 ChatProgramm.model;
|
||||
|
||||
import java.awt.Point;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
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 ChatProgramm.util.OhmLogger;
|
||||
/**
|
||||
*
|
||||
* @author le
|
||||
*/
|
||||
public class GrafikModel
|
||||
{
|
||||
private Figur aktuelleFigur;
|
||||
private ArrayList<Figur> figuren;
|
||||
private Preferences pref;
|
||||
private static Logger lg = OhmLogger.getLogger();
|
||||
|
||||
public GrafikModel()
|
||||
{
|
||||
aktuelleFigur = new Figur();
|
||||
figuren = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void addPoint(Point p)
|
||||
{
|
||||
aktuelleFigur.addPoint(p);
|
||||
}
|
||||
|
||||
public List<Point> getPunkte()
|
||||
{
|
||||
return aktuelleFigur.getPunkte();
|
||||
}
|
||||
|
||||
public List<Figur> getFiguren(){
|
||||
return Collections.unmodifiableList(figuren);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Persistenz via Serialisierung
|
||||
* @param dateiname
|
||||
* @throws FileNotFoundException
|
||||
* @throws IOException
|
||||
*/
|
||||
public void speicherePunkte(String dateiname) throws FileNotFoundException, IOException
|
||||
{
|
||||
// an Preferences denken!!
|
||||
FileOutputStream fos = new FileOutputStream(dateiname);
|
||||
//wichtig Puffer -> Performance
|
||||
BufferedOutputStream bos = new BufferedOutputStream(fos);
|
||||
//Serialisierung
|
||||
ObjectOutputStream oos = new ObjectOutputStream(bos);
|
||||
oos.writeObject(figuren);
|
||||
oos.flush(); // Puffer
|
||||
oos.close();
|
||||
}
|
||||
|
||||
public void lesePunkte(String dateiname) throws FileNotFoundException, IOException, ClassNotFoundException
|
||||
{
|
||||
// an Preferences denken!!
|
||||
FileInputStream fis = new FileInputStream(dateiname);
|
||||
//wichtig Puffer -> Performance
|
||||
BufferedInputStream bis = new BufferedInputStream(fis);
|
||||
//Serialisierung
|
||||
ObjectInputStream ois = new ObjectInputStream(bis);
|
||||
Object daten = ois.readObject(); // Achtung
|
||||
// if (daten instanceof ArrayList)
|
||||
// {
|
||||
// punkte = (ArrayList<Point>)daten;
|
||||
// }
|
||||
//eleganter
|
||||
if (daten instanceof ArrayList liste)
|
||||
{
|
||||
figuren = liste;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void endShape() {
|
||||
figuren.add(aktuelleFigur);
|
||||
aktuelleFigur = new Figur();
|
||||
}
|
||||
|
||||
/**
|
||||
* Bestimmt die Adresse des zuletzt besuchten Ordners
|
||||
* @return letzter Ordner
|
||||
*/
|
||||
public String getPref()
|
||||
{
|
||||
pref = Preferences.userNodeForPackage(getClass());
|
||||
return pref.get("lastDirectory", null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setzt die Preferenz zu dem zuletzt besuchten Ordner
|
||||
* @param lastDirectory Bezeichner "lastDirectory"
|
||||
* @param lastAdress Adresse des zuletzt besuchten Ordners
|
||||
*/
|
||||
public void putPref(String lastDirectory, String lastAdress)
|
||||
{
|
||||
pref.put(lastDirectory, lastAdress);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user