L
Lalle84
Gast
Code:
import java.io.*;
import java.util.*;
public class Manager implements Serializable
{
private static LinkedList<GraphicObject> elements = new LinkedList<GraphicObject>();
public LinkedList<GraphicObject> getElements() {
return elements;
}
public void setElements(LinkedList<GraphicObject> elements)
{
Manager.elements = elements;
}
private static int idcount;
public static void setIdcount (int idcount)
{
Manager.idcount = idcount;
}
public int getIdcount ()
{
return idcount;
}
public int getNextId ()
{
return Manager.idcount++;
}
public int addNewLine (int xstart, int ystart, int zstart, int xend, int yend, int zend, String name)
{
Point start = new Point(xstart, ystart, zstart, this.getNextId(), "Starting point");
Point end = new Point(xend, yend, zend, this.getNextId(),"Endpoint");
Line newline = new Line(start, end, this.getNextId(), name);
this.getElements().add(newline);
System.out.println("Linie "+name+" erfolgreich hinzugefügt. \n");
return newline.getId();
}
public int addNewPoint (int x, int y, int z, String name)
{
Point newpoint = new Point(x, y, z, this.getNextId(), name);
this.getElements().add(newpoint);
System.out.println("Punkt "+name+" erfolgreich hinzugefügt. \n");
return newpoint.getId();
}
public int addNewSphere (int pmidx, int pmidy, int pmidz, int radius, String color, String name)
{
Point middle = new Point(pmidx, pmidy, pmidz, this.getNextId(), "middle");
Sphere newsphere = new Sphere(middle, radius, color, this.getNextId(), name);
this.getElements().add(newsphere);
System.out.println("Kugel "+name+" erfolgreich hinzugefügt. \n");
return newsphere.getId();
}
public int addNewTriangle (int x1, int y1, int z1, int x2, int y2, int z2, int x3, int y3, int z3, String name, String color)
{
Point xp = new Point(x1, y1, z1, this.getNextId(), "Point 1");
Point yp = new Point(x2, y2, z2, this.getNextId(), "Point 2");
Point zp = new Point(x3, y3, z3, this.getNextId(), "Point 3");
Triangle newtriangle = new Triangle(xp, yp, zp, color, this.getNextId(), name);
this.getElements().add(newtriangle);
System.out.println("Dreieck "+name+" erfolgreich hinzugefügt. \n");
return newtriangle.getId();
}
public int delElement (int id)
{
Iterator i = this.getElements().iterator();
while(i.hasNext())
{
GraphicObject o = (GraphicObject) i.next();
if(o.getId() == id)
{
i.remove();
System.out.println("Element mit der ID: "+id+" gelöscht.");
return 1;
}
}
System.out.println("Löschen nicht möglich. Die ID ist nicht vergeben.");
return 0;
}
public LinkedList<GraphicObject> filterElement (String type)
{
LinkedList<GraphicObject> filterlist = new LinkedList<GraphicObject>();
Iterator i = this.getElements().iterator();
while(i.hasNext())
{
GraphicObject o = (GraphicObject) i.next();
if(o.getClass().getSimpleName().equalsIgnoreCase(type))
{
filterlist.add(o);
}
}
return filterlist;
}
public LinkedList<GraphicObject> searchElement (String elementname)
{
LinkedList<GraphicObject> searchlist = new LinkedList<GraphicObject>();
Iterator i = this.getElements().iterator();
while(i.hasNext())
{
GraphicObject o = (GraphicObject) i.next();
if(o.getName().equalsIgnoreCase(elementname))
{
searchlist.add(o);
}
}
return searchlist;
}
public void printElements(LinkedList<GraphicObject> printlist)
{
String printall = new String();
Iterator i = printlist.iterator();
while(i.hasNext())
{
GraphicObject o = (GraphicObject) i.next();
printall += "\n\n";
printall += o.toString();
}
System.out.print(printall);
}
public void saveObject(LinkedList<GraphicObject> elements) throws IOException{
ObjectOutputStream oos = null;
try{
oos = new ObjectOutputStream(new FileOutputStream("out.dat"));
Iterator z = elements.iterator();
while(z.hasNext())
{
GraphicObject o = (GraphicObject) z.next();
oos.writeObject(o);
//oos.reset();
}
}
catch(FileNotFoundException e)
{
System.err.println("Konnte 'out.dat' nicht erzeugen");
}
catch (IOException e)
{
System.err.println("Fehler bei der Ein-/Ausgabe: " + e);
}
finally {
try {
oos.close();
}
catch (Exception e)
{
System.err.println("Fehler beim Schließen der Datei");
}
}
}
public void readObject(LinkedList<GraphicObject> elements) throws IOException{
ObjectInputStream ois = null;
try{
ois = new ObjectInputStream(new FileInputStream("out.dat"));
Iterator z = elements.iterator();
while(z.hasNext())
{
GraphicObject o = (GraphicObject) z.next();
ois.readObject(o);
//ois.reset();
}
}
catch(FileNotFoundException e)
{
System.err.println("Konnte 'out.dat' nicht öffnen");
}
catch (IOException e)
{
System.err.println("Fehler bei der Ein-/Ausgabe: " + e);
}
finally {
try {
ois.close();
}
catch (Exception e)
{
System.err.println("Fehler beim Schließen der Datei");
}
}
}
public static int readInt(){
BufferedReader eingabeInt = new BufferedReader(new InputStreamReader(System.in));
String einlesen="";
try{
einlesen=eingabeInt.readLine();
}
catch (Exception e){
System.out.println(e);
}
try{
return (new Integer(einlesen)).intValue();
}
catch (Exception e){
return 0;
}
}
public static String readString(){
BufferedReader eingabeString = new BufferedReader(new InputStreamReader(System.in));
try{
return eingabeString.readLine();
}
catch (Exception e){
System.out.println(e);
return new String("");
}
}
public void hauptmenu()throws Exception{
Manager system2 = new Manager();
System.out.println("Willkommen zur Verwaltung grafischer Objekte");
System.out.println("Bitte wählen Sie eine Funktion aus");
System.out.println("(1) Neues grafisches Object anlegen");
System.out.println("(2) Bestehendes grafisches Object löschen");
System.out.println("(3) Grafisches Object auflisten");
System.out.println("(4) Grafisches Object suchen");
System.out.println("(5) Exit");
System.out.println("(Bitte eine Nummer eingeben:");
int eingabe = readInt();
switch(eingabe){
case 1:
system2.menu1();
break;
case 2:
//Element mit der ID 9 löschen
//system.delElement(9);
break;
case 3:
//Alle Dreiecke ausgeben
//system.printElements(system.filterElement("triangle"));
break;
case 4:
//Element mit Name Testkugel2 suchen und ausgeben
//system.printElements(system.searchElement("testkugel2"));
break;
case 5:
System.out.println("--------Object saving---------\n");
system2.saveObject(elements);
System.out.println("\n Programm beedndet!");
System.exit(0);
break;
}
}
public void menu1()throws Exception{
Manager system3 = new Manager();
System.out.println("Grafisches Objekt anlegen");
System.out.println("Bitte wählen Sie");
System.out.println("(1) für Sphere");
System.out.println("(2) für Point");
System.out.println("(3) für Line");
System.out.println("(4) für Triangle");
System.out.println("(5) Hauptmenu");
System.out.println("(Bitte eine Nummer eingeben:");
int eingabe = readInt();
switch(eingabe){
case 1:
int einlesenSphereX = 0;
int einlesenSphereY = 0;
int einlesenSphereZ = 0;
String einlesenSphereRadius = "";
String einlesenNameSphere = "";
System.out.println("Bitte geben Sie den Wert für X ein");
einlesenSphereX = readInt();
System.out.println("Bitte geben Sie den Wert für Y ein");
einlesenSphereY = readInt();
System.out.println("Bitte geben Sie den Wert für Z ein");
einlesenSphereZ = readInt();
System.out.println("Bitte geben Sie den Wert für den Radius ein");
einlesenSphereRadius = readString();
System.out.println("Bitte geben Sie einen Namen ein");
einlesenNameSphere = readString();
system3.addNewSphere(einlesenSphereX, einlesenSphereY, einlesenSphereZ, 9, einlesenSphereRadius, einlesenNameSphere);
system3.hauptmenu();
break;
case 2:
int einlesenPointX = 0;
int einlesenPointY = 0;
int einlesenPointZ = 0;
String einlesenNamePoint = "";
System.out.println("Bitte geben Sie den Wert für X ein");
einlesenPointX = readInt();
System.out.println("Bitte geben Sie den Wert für Y ein");
einlesenPointY = readInt();
System.out.println("Bitte geben Sie den Wert für Z ein");
einlesenPointZ = readInt();
System.out.println("Bitte geben Sie einen Namen ein");
einlesenNamePoint = readString();
system3.addNewPoint(einlesenPointX, einlesenPointY, einlesenPointZ, einlesenNamePoint);
system3.hauptmenu();
break;
case 3:
int einlesenlinePointX1 = 0;
int einlesenlinePointY1 = 0;
int einlesenlinePointZ1 = 0;
int einlesenlinePointX2 = 0;
int einlesenlinePointY2 = 0;
int einlesenlinePointZ2 = 0;
String einlesenNameLine = "";
System.out.println("Bitte geben Sie den Wert für X1 ein");
einlesenlinePointX1 = readInt();
System.out.println("Bitte geben Sie den Wert für Y1 ein");
einlesenlinePointY1 = readInt();
System.out.println("Bitte geben Sie den Wert für Z1 ein");
einlesenlinePointZ1 = readInt();
System.out.println("Bitte geben Sie den Wert für X2 ein");
einlesenlinePointX2 = readInt();
System.out.println("Bitte geben Sie den Wert für Y2 ein");
einlesenlinePointY2 = readInt();
System.out.println("Bitte geben Sie den Wert für Z2 ein");
einlesenlinePointZ2 = readInt();
System.out.println("Bitte geben Sie einen Namen ein");
einlesenNameLine = readString();
system3.addNewLine(einlesenlinePointX1, einlesenlinePointY1, einlesenlinePointZ1, einlesenlinePointX2,einlesenlinePointY2, einlesenlinePointZ2, einlesenNameLine);
system3.hauptmenu();
break;
case 4:
int einlesenPointtriangleX1 = 0;
int einlesenPointtriangleY1 = 0;
int einlesenPointtriangleZ1 = 0;
int einlesenPointtriangleX2 = 0;
int einlesenPointtriangleY2 = 0;
int einlesenPointtriangleZ2 = 0;
int einlesenPointtriangleX3 = 0;
int einlesenPointtriangleY3 = 0;
int einlesenPointtriangleZ3 = 0;
String einlesenNametriangle = "";
String einlesenfarbetriangle = "";
System.out.println("Bitte geben Sie den Wert für X1 ein");
einlesenPointtriangleX1 = readInt();
System.out.println("Bitte geben Sie den Wert für Y1 ein");
einlesenPointtriangleY1 = readInt();
System.out.println("Bitte geben Sie den Wert für Z1 ein");
einlesenPointtriangleZ1 = readInt();
System.out.println("Bitte geben Sie den Wert für X2 ein");
einlesenPointtriangleX2 = readInt();
System.out.println("Bitte geben Sie den Wert für Y2 ein");
einlesenPointtriangleY2 = readInt();
System.out.println("Bitte geben Sie den Wert für Z2 ein");
einlesenPointtriangleZ2 = readInt();
System.out.println("Bitte geben Sie den Wert für X3 ein");
einlesenPointtriangleX3 = readInt();
System.out.println("Bitte geben Sie den Wert für Y3 ein");
einlesenPointtriangleY3 = readInt();
System.out.println("Bitte geben Sie den Wert für Z3 ein");
einlesenPointtriangleZ3 = readInt();
System.out.println("Bitte geben Sie einen Namen ein");
einlesenNametriangle = readString();
System.out.println("Bitte eine Farbe ein");
einlesenfarbetriangle = readString();
system3.addNewTriangle(einlesenPointtriangleX1, einlesenPointtriangleY1, einlesenPointtriangleZ1, einlesenPointtriangleX2, einlesenPointtriangleY2, einlesenPointtriangleZ2, einlesenPointtriangleX3, einlesenPointtriangleY3, einlesenPointtriangleZ3, einlesenNametriangle, einlesenfarbetriangle);
system3.hauptmenu();
break;
case 5:
system3.hauptmenu();
break;
}
}
public static void main (String[] args)throws Exception
{
//alle Elemente ausgeben
//system.printElements(elements);
try{
Manager system = new Manager();
system.setIdcount(0);
System.out.println("--------Object reading---------\n");
system.readObject(elements);
system.hauptmenu();
}
catch(Exception e){
System.err.println(e);
}
}
}