FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS 2012-13 1 Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias.

Slides:



Advertisements
Ähnliche Präsentationen
programmiert April-Juni 2003 von Knut Riechmann
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
der Universität Oldenburg
Klassen - Verkettete Liste -
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Ein Beispiel in Java.
Verteilte Software - Java - Prozedurale Programmierung 1
Daten Anzeigen und Ausdrucken Zu Zeigende Daten (z.B. Studentenplan) Daten in XML müssen geparst und in PDF- Format umgewandelt werden. Dazu iTEXT Bibliothek.
Java: Dynamische Datentypen
Listen Richard Göbel.
Einfache Komponenten in SWING
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
MVC.
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Philipp Ciechanowicz 5. Übung zu Software Engineering WS 2007/2008.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Transaction Script Software Component Technology for Distributed Applications.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Modulare Programmierung
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Einführung in die Programmierung Datensammlung
Informatikunterricht mit Java
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Aufbau einer Verbindung zur Datenbank import java.net.URL; import java.sql.*; class JDBCExample.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FH-Hof Singleton Pattern Richard Göbel. FH-Hof Motivation Bestimmte Klassen sollen nur ein Objekt haben Nur ein Fabrikobjekt für eine Fabrikklasse Zentraler.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Rekursive Funktionen (Fakultät)
AWT und JFC Abstract Windowing Toolkit
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Datenbankanbindung mit
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Javelin Internet-based parallel computing using Java.
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.
FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias.
FLEET MANAGEMENT SOFTWARE Wirtschaftsinformatik Projekt | WS Benny Brand Paul Fuchs Gui Ro Kong Boris Oechsle Elizaveta Olar Thomas Oppel Matthias.
FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias.
FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias.
FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias.
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
Tests mit Junit und DBUnit Warum Tests? Verhindert weitreichende Auswirkung bei großen Projekten Änderung kosten viel Geld und Zeit Führt oft zu einem.
Java Programme nur ein bisschen objektorientiert.
Grafische Benutzeroberflächen mit Swing (2) Christoph Broschinski, Alexander Sczyrba Jan Krüger
Wie überwacht man Objekte im "Alltag" ?
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Zwei Denkansätze zur Klasse Schlange
Dynamisches Laden von Klassen
Felder in Java.
 Präsentation transkript:

FLEET MANAGEMENT Wirtschaftsinformatik Projekt WS Benny Brand | Paul Fuchs | Gui Rong Ko | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld

Gliederung Fleet Management Xtreme Programming Aufbau Java MVC, Singleton- Patterns Funktionen Fahrzeuge Reservierungen Werkstatt Statistiken PDF-Generator Testfälle (J-Unit-Tests) Web-Applikation (PHP) Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 2

Fleet Management Tool Einfach Möglichkeit den firmeninternen Fuhrpark zu verwalten – Ausleihe – Reservierung – Mitarbeiterverwaltung – Statistiken – Zusätzliche Weboberfläche Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 3

ER-Model Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 4

Xtreme Programming Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 5 RollenAufgabenBeispiel ProduktbesitzerHat Verantwortung, setzt Prioritäten, Entscheider für bestes ROI Produktmanagement, Marketing, ein Benutzer, Kunde, Manager des Benutzers, Analyst, Sponsor KundeEntscheidet, was gemacht wird, gibt Rückmeldung, Auftraggeber Auftraggeber, kann auch Produktbesitzer sein EntwicklerEntwickelt das ProduktProgrammierer, Tester, DB- Experte, Architekt, Designer ProjektmanagerFührung des TeamsNormalerweise Produktbesitzer, kann auch Entwickler sein BenutzerWird das zu erstellende Produkt nutzen Nutzer des Produkts Quelle:

User Stories Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 6

Pair-Programming Wechselnde Paare Höherer Wissenstransfer Anfänger kommen schneller rein Ständiger Codereview Ziel: Bessere Codequalität Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 7

MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 8 Termin für Reparatur vereinbaren Status

MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 9

MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 10

MySQL: Stored Procedures Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 11

MySQL: Function Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 12

MySQL: Function Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 13

MySQL: Function Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 14

Aufbau Java MVC und Singleton Pattern Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 15

MVC MVC Pattern – Flexible Programmierung Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld ViewControllerModel DAO

Singleton Singleton Pattern – Nur ein Objekt der Klasse darf existieren Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 17 Singleton -instance: Singleton -Singleton() + getInstance(): Singleton

Singleton Beispiel: package com.hsulm.wf5.fleetmanagement.model; public class FahrzeugDAO implements InterfaceDAO { private Ausstattung ausstattung; // Singleton// nur ein Objekt der Klasse kann erzeugt werden private static FahrzeugDAO instance = new FahrzeugDAO(); Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 18

Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 19

Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 20

Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 21

package com.hsulm.wf5.fleetmanagement.view.FahrzeugBearbeiten.java JButton btnHinzufgen = new JButton("Hinzuf\u00FCgen"); btnHinzufgen.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) { String kennzeichen = kennzeichenTextField.getText(); String standort = standortTextField.getText(); String farbe = farbeTextField.getText(); String erstzulassung = erstzulassungTextField.getText(); String kraftstoffart = kraftstoffartTextField.getText(); int sitzplaetze = Integer.parseInt(sitzplaetzeTextField.getText()); DateFormat formater = new SimpleDateFormat(); Date vertragsbeginn = null; String tuev = null; try { vertragsbeginn = (Date) formater.parse(vertragsbeginnTextField.getText()); } catch (ParseException e) { e.printStackTrace(); return; } tuev = tuevTextField.getText(); int serviceintervall = Integer.parseInt(serviceintervallTextField.getText()); String getriebe = getriebeTextField.getText(); int vertragslaufzeit = Integer.parseInt(vertragslaufzeitTextField.getText()); int herstellerId = Integer.parseInt(herstellerIdTextField.getText()); int werkstattId = Integer.parseInt(werkstattIdTextField.getText()); int kilometerstand = Integer.parseInt(kilometerstandTextField.getText()); String vertragsart = vertragsartTextField.getText(); String model = modelTextField.getText(); FahrzeugController fc = FahrzeugController.getInstance(); } }); Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 22

package com.hsulm.wf5.fleetmanagement.controller.FahrzeugController.java public void fahrzeugUpdaten(int arrayID, String vertragsart, int serviceintervall, String kennzeichen, String standort, String tuev, String vertragsbeginn, int vertragslaufzeit, int werkstattId, int kilometerstand) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException { Fahrzeug fahrzeug = fahrzeuge.get(arrayID); fahrzeug.setKennzeichen(kennzeichen); fahrzeug.setKilometerstand(kilometerstand); fahrzeug.setStandort(standort); fahrzeug.setTuev(tuev); fahrzeug.setVertragsBeginn(vertragsbeginn); fahrzeug.setVertragsLaufzeitMonate(vertragslaufzeit); fahrzeug.setWerkstattId(werkstattId); fahrzeug.setVertragsart(vertragsart); fahrzeug.setServiceIntervall_KM(serviceintervall); System.out.println("controller" + fahrzeug.getKilometerstand()); // fahrzeug updaten fahrzeug.objektUpdaten(fahrzeug); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 23

package com.hsulm.wf5.fleetmanagement.model.Fahrzeug.java public void objektUpdaten(Fahrzeug fahrzeug) { dao.objektUpdaten(fahrzeug); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 24

package com.hsulm.wf5.fleetmanagement.model.FahrzeugDao.java public void objektUpdaten(Fahrzeug object) { try { java.sql.Connection conn = Connection.connect(); PreparedStatement preStmt = conn.prepareStatement("CALL updateFahrzeug(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); java.sql.Date vertragsbeginn=null; if(!object.getVertragsBeginn().equals("null")){vertragsbeginn = java.sql.Date.valueOf(object.getVertragsBeginn());} preStmt.setString(1, object.getKennzeichen()); preStmt.setString(2, object.getStandort()); preStmt.setString(3, object.getFarbe()); preStmt.setString(4, object.getErstzulassung()); preStmt.setString(5, object.getKraftstoffart()); preStmt.setInt(6, object.getSitzplaetze()); preStmt.setString(7, object.getTuev()); preStmt.setInt(8, object.getServiceIntervall_KM()); preStmt.setString(9, object.getGetriebe()); preStmt.setString(10, object.getVertragsart()); preStmt.setDate(11, vertragsbeginn); preStmt.setInt(12, object.getVertragsLaufzeitMonate()); preStmt.setInt(13, object.getWerkstattId()); preStmt.setInt(14, object.getHerstellerId()); preStmt.setString(15, object.getModell()); preStmt.setInt(16, object.getKilometerstand()); preStmt.executeUpdate(); preStmt.close(); conn.close(); } catch (SQLException sqle) { sqle.printStackTrace(); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 25

Suchfunktion Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 26

package com.hsulm.wf5.fleetmanagement.view.MainGui.java public JTextField sucheFahrzeug; this.sucheFahrzeug = new JTextField(); public void set_fahrzeugsucheListener(KeyListener l){ sucheFahrzeug.addKeyListener(l); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 27

package com.hsulm.wf5.fleetmanagement.controller.FahrzeugController.java public void Fahrzeuginit() { MainGUI.getInstance().getTable_2().setRowSorter(null); MainGUI.getInstance().sucheFahrzeug.setText(""); MainGUI.getInstance().set_fahrzeugsucheListener(new fahrzeug_sucheListener()); } class fahrzeug_sucheListener implements KeyListener{ public void keyReleased(KeyEvent e) { TableRowSorter sorter = new TableRowSorter (MainGUI.getInstance().getTable_2().getModel()); MainGUI.getInstance().getTable_2().setRowSorter(sorter); filter(MainGUI.getInstance().sucheFahrzeug.getText(),sorter); } public void filter (String text,TableRowSorter sorter) { if (text.length() == 0) { sorter.setRowFilter(null); } else { try { sorter.setRowFilter(RowFilter.regexFilter("(?i)"+text)); } catch (PatternSyntaxException e) { System.out.println(e.getPattern()); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 28

Reservierungen Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 29

Reservierungen Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 30

Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer); ws.set ( ); ws.setStrasse(strasse); ws.setPlz(plz); ws.setOrt(ort); ws.setLand(land); ws.objektUpdaten(ws);}

Controller Werkstatt anlegen //neue Werkstatt anlegen boolean flag = false; for (int i = 0; i < werkstattarray.size()-1; i++) { if (plz ==(werkstattarray.get(i).getPlz())) { ws.setOrt(werkstattarray.get(i).getOrt()); ws.setLand(werkstattarray.get(i).getLand()); flag = true; } if (flag == true) { ws.objektAnlegen(ws);} else { ws.werkstattcityanlegen(ws); ws.objektAnlegen(ws);

Controller WerkstattBearbeiten Felder //Werkstattbearbeitenframe befüllen public void WerkstattBearbeiten(int row) { Werkstatt werkstatt = werkstattarray.get(row); WerkstattBearbeiten wb = WerkstattBearbeiten.getInstance(); wb.get_namef().setText(werkstatt.getName()); wb.get_plzf().setText(""+werkstatt.getPlz()); wb.get_telef().setText(werkstatt.getTelefonnummer()); wb.get_strasf().setText(werkstatt.getStrasse()); wb.get_anspf().setText(werkstatt.getAnsprechpartner()); wb.get_emaif().setText(werkstatt.get ()); wb.get_ortf().setText(werkstatt.getOrt()); wb.get_landf().setText(werkstatt.getLand()); wb.setArrayID(row); }

Controller befüllen //Werkstatt Combobox in Bearbeitenframe befüllen public void fahrzeugBearbeiten() { FahrzeugBearbeiten fb = FahrzeugBearbeiten.getInstance(); fb.get_Werk().removeAllItems(); for(int i =0;i<werkstattarray.size();i++){ fb.get_Werk().addItem(werkstattarray.get(i).getName()); }

Controller löschen // Siherheitsabfrage if(table5.getModel().removeRow(werkstattID)){ // Werkstatt aus Datenbank löschen Werkstatt werkstatt = werkstattarray.get(werkstattID); werkstatt.objektLoesche(werkstatt); // Lösche aus ArrayList von werkstattController werkstattarray.remove(werkstattID); table5.getModel().fuelleModelmitDaten(werkstattarray); table5.setRowSelectionInterval(0, 0);

Werkstattübersicht Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 36

Werkstattübersicht Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 37

Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer); ws.set ( ); ws.setStrasse(strasse); ws.setPlz(plz); ws.setOrt(ort); ws.setLand(land); ws.objektUpdaten(ws);}

Controller Werkstatt anlegen //neue Werkstatt anlegen boolean flag = false; for (int i = 0; i < werkstattarray.size()-1; i++) { if (plz ==(werkstattarray.get(i).getPlz())) { ws.setOrt(werkstattarray.get(i).getOrt()); ws.setLand(werkstattarray.get(i).getLand()); flag = true; } if (flag == true) { ws.objektAnlegen(ws);} else { ws.werkstattcityanlegen(ws); ws.objektAnlegen(ws);

Controller WerkstattBearbeiten Felder //Werkstattbearbeitenframe befüllen public void WerkstattBearbeiten(int row) { Werkstatt werkstatt = werkstattarray.get(row); WerkstattBearbeiten wb = WerkstattBearbeiten.getInstance(); wb.get_namef().setText(werkstatt.getName()); wb.get_plzf().setText(""+werkstatt.getPlz()); wb.get_telef().setText(werkstatt.getTelefonnummer()); wb.get_strasf().setText(werkstatt.getStrasse()); wb.get_anspf().setText(werkstatt.getAnsprechpartner()); wb.get_emaif().setText(werkstatt.get ()); wb.get_ortf().setText(werkstatt.getOrt()); wb.get_landf().setText(werkstatt.getLand()); wb.setArrayID(row); }

Controller befüllen //Werkstatt Combobox in Bearbeitenframe befüllen public void fahrzeugBearbeiten() { FahrzeugBearbeiten fb = FahrzeugBearbeiten.getInstance(); fb.get_Werk().removeAllItems(); for(int i =0;i<werkstattarray.size();i++){ fb.get_Werk().addItem(werkstattarray.get(i).getName()); }

Controller löschen // Siherheitsabfrage if(table5.getModel().removeRow(werkstattID)){ // Werkstatt aus Datenbank löschen Werkstatt werkstatt = werkstattarray.get(werkstattID); werkstatt.objektLoesche(werkstatt); // Lösche aus ArrayList von werkstattController werkstattarray.remove(werkstattID); table5.getModel().fuelleModelmitDaten(werkstattarray); table5.setRowSelectionInterval(0, 0);

Statistiken Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 43

package com.hsulm.wf5.fleetmanagement.view.MainGui.java ActionListener al7 = new ActionListener() { public void actionPerformed(ActionEvent e) { FahrzeugReserviert demo = new FahrzeugReserviert("Vergleich„, "Fahrzeuge, die am meisten reserviert wurden"); demo.FahrzeugReserviertStart(); demo.pack(); demo.setVisible(true); } }; Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 44

package com.hsulm.wf5.fleetmanagement.statisticview.FahrzeugReserviert.java ArrayList fz; public FahrzeugReserviert(String applicationTitle, String chartTitle) { super(applicationTitle); fz = new ArrayList (); fz = FahrzeugDAO.getInstance().fahrzeugeAmMeistenReserviert(); // This will create the dataset PieDataset dataset = createDataset(); // based on the dataset we create the chart chart = createChart(dataset, chartTitle); // we put the chart into a panel ChartPanel chartPanel = new ChartPanel(chart); // default size chartPanel.setPreferredSize(new java.awt.Dimension(600, 400)); // add it to our application this.FahrzeugReserviert = chartPanel; } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 45

package com.hsulm.wf5.fleetmanagement.model.FahrzeugDao.java public ArrayList fahrzeugeAmMeistenReserviert() { ArrayList fahrzeugstat = new ArrayList (); Fahrzeug fahrzeug; try { java.sql.Connection con = Connection.connect(); CallableStatement cst; cst = con.prepareCall("Call FahrzeugAmMeistenReserviert()"); ResultSet rs = cst.executeQuery(); while (rs.next()) { fahrzeug = new Fahrzeug(rs.getInt("AnzahlReservierungen"), rs.getString("Kennzeichen"), rs.getString("Name"), rs.getString("Modell")); fahrzeugstat.add(fahrzeug); } cst.close(); rs.close(); con.close(); } catch (SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } return fahrzeugstat; } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 46

FahrzeugAmMeistenReserviert () Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 47

Chart: Fahrzeuge, die am meisten reserviert wurden Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 48

PDF-Generator Generation von PDFs – Tabellen Fahrzeug Reservierungen Mitarbeiter – Statistiken Top 5 gefahrene Kilometer Reservierte Fahrzeuge Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 49

PDF-Generator Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 50

PDF-Generator Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 51

PDF-Generator Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 52

PDF-Generator Programmierung – PDFGenerator.java Erstellt PDF – ExportPDFFrame.java (GUI) Ruft Jtables auf – Jtables-Klassen und Statistik-Klassen Rufen PDFGenerator auf Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 53

package com.hsulm.wf5.fleetmanagement.view.ExportPDFFrame.java ActionListener exp = new ActionListener() public void actionPerformed( ActionEvent e ) { if(FahrzeugeIsActive()) { MainGUI.getInstance().getTable_2().createPDF(); } if(ReservierungenIsActive()){ MainGUI.getInstance().getTable_3().createPDF(); } if(MitarbeiterIsActive()) { MainGUI.getInstance().getTable_4().createPDF(); } if(TopFuenfIsActive()) { erstelleMitarbeiterKMPDF(); } if(ReservierteFahrzeugeIsActive()) { erstelleFahrzeugeReserviertPDF(); } if(AlleIsActive()) { MainGUI.getInstance().getTable_2().createPDF(); MainGUI.getInstance().getTable_3().createPDF(); erstelleMitarbeiterKMPDF(); erstelleFahrzeugeReserviertPDF(); } }}; Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 54

package com.hsulm.wf5.fleetmanagement.view.ExportPDFFrame.java public void erstelleFahrzeugeReserviertPDF() { FahrzeugReserviert reservierteFahrzeuge; reservierteFahrzeuge = new FahrzeugReserviert("Vergleich", "Fahrzeuge, die am meisten reserviert wurden"); reservierteFahrzeuge.pack(); RefineryUtilities.centerFrameOnScreen(reservierteFahrzeuge); reservierteFahrzeuge.setVisible(false); reservierteFahrzeuge.createPDF(); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 55

package com.hsulm.wf5.fleetmanagement.statisticview.FahrzeugReserviert.java public void createPDF() { PDFGenerator gen = new PDFGenerator(); PDFGenerator.writeChartToPDF(getChart(), 585, 312, "Reservierte Fahrzeuge.pdf"); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 56

package com.hsulm.wf5.fleetmanagement.pdfgeneration.PDFGenerator.java public static void writeChartToPDF(JFreeChart chart, int width, int height, String fileName) { PdfWriter writer = null; Document document = new Document(PageSize.A4.rotate(), 20, 15, 15, 15); try { writer = PdfWriter.getInstance(document, new FileOutputStream(fileName)); document.open(); BufferedImage bufferedImage = chart.createBufferedImage(width, height); Image image = Image.getInstance(writer, bufferedImage, 1.0f); document.add(image); document.close(); writer.close(); Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + fileName); } catch (Exception e) { e.printStackTrace(); } Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 57

PHP Benny Brand | Paul Fuchs | Gui Ro Kong | Boris Oechsle | Elizaveta Olar | Thomas Oppel | Matthias Schmitt | Markus Schönfeld 58