@@ -5,6 +5,8 @@
*/
package ClientApp;

import CommunicationClient.ComManager;
import CommunicationClient.LogManager;
import chat.AudioMessage;
import chat.ChatMessage;
import java.io.File;
@@ -21,6 +23,8 @@
import static javafx.collections.FXCollections.observableList;
import javafx.collections.ObservableList;
import GUI.ClienttestGUIController;
import Protocol.Message;
import Protocol.MessageBuilder;
import chat.EmergencyUnit;
import java.util.Random;

@@ -39,24 +43,29 @@ public class ChatClient
private ObservableList<ChatMessage> observableMessages;
private String ontvanger;
private Random random;
private MessageBuilder mb;

public ChatClient(String user, int type)
private ComManager comManager = ComManager.getInstance();
private LogManager logManager = LogManager.getInstance();

public ChatClient(String user, int type, int persontype)
{
OutputStream outStream = null;
try
{
mb = new MessageBuilder();
clients = new ArrayList<String>();
random = new Random();
observableClients = observableList(clients);
messages = new ArrayList<ChatMessage>();
observableMessages = observableList(messages);
Socket s = new Socket("145.93.34.80", 8189);
Socket s = new Socket("localhost", 8189);
outStream = s.getOutputStream();
InputStream inStream = s.getInputStream();
// Let op: volgorde is van belang!
out = new ObjectOutputStream(outStream);
ObjectInputStream in = new ObjectInputStream(inStream);
this.unit = new EmergencyUnit(user, type);
this.unit = new EmergencyUnit(user, type, persontype);
unit.setLatidude(generateRandomLatidude());
unit.setLongitude(generateRandomLongitude());
out.writeObject(unit);
@@ -74,6 +83,10 @@ public ChatClient(String user, int type)
Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
}
}

public String getOntvanger() {
return ontvanger;
}

private double generateRandomLatidude()
{
@@ -99,6 +112,9 @@ public void sendMessage(String bericht)
{
try
{
Message chat = mb.buildInsertMessage(logManager.getPersonId(), 8, "test", null);
comManager.addMessage(chat);

ChatMessage message = new ChatMessage(bericht, this.unit.getNaam(), ontvanger);
out.writeObject(message);
out.flush();
@@ -20,15 +20,15 @@
*
* @author Merijn
*/
public class ComManager implements CommMessageListener, ReadWrite{
public class ComManager implements CommMessageListener{

private Thread sendThread;
private Thread recieveThread;

private MessageRecieverThread mrt;
private MessageSenderThread mst;

private static final String host = "145.144.241.206";
private static final String host = "145.144.240.80";
private static final int portNumber = 9000;
private Socket socket;

@@ -42,15 +42,14 @@ private ComManager() {
this.socket = new Socket(host,portNumber);
this.ois = new ObjectInputStream(this.socket.getInputStream());
this.oos = new ObjectOutputStream(this.socket.getOutputStream());
oos.flush();
}
catch (IOException e)
{
System.out.println(e.getMessage());
}

this.mrt = new MessageRecieverThread(this, this);
this.mst = new MessageSenderThread(this);
this.mrt = new MessageRecieverThread(ois, this);
this.mst = new MessageSenderThread(oos);

this.sendThread = new Thread(mst);
this.recieveThread = new Thread(mrt);
@@ -73,14 +72,7 @@ public void addMessage(Message message)
this.mst.addMessage(message);
}

@Override
public void sendMessage(Message message) {
try {
this.oos.writeObject(message);
} catch (IOException ex) {
Logger.getLogger(MessageSenderThread.class.getName()).log(Level.SEVERE, null, ex);
}
}


public void stopService()
{
@@ -101,20 +93,7 @@ public void recieved(Message message) {
}
}

@Override
public Message readMessage() {
try {
Message message = null;
if ((message = (Message) ois.readObject()) != null) {
return message;
}
} catch (IOException ex) {
Logger.getLogger(MessageRecieverThread.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(MessageRecieverThread.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}


private static class ComManagerHolder {

@@ -0,0 +1,59 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package CommunicationClient;

import CommunicationClient.ComManager;
import CommunicationClient.MessageListener;
import Protocol.Message;
import Protocol.MessageBuilder;
import javafx.animation.ParallelTransitionBuilder;

/**
*
* @author Oomis
*/
public class LogManager implements MessageListener {

private CommunicationClient.ComManager comManager;
private MessageBuilder mb;
private int personid;

public void setPersonId(int personid)
{
this.personid = personid;
}

public int getPersonId()
{
return this.personid;
}

private LogManager() {
comManager = ComManager.getInstance();
mb = new MessageBuilder();
}

public static LogManager getInstance() {
return LogManagerHolder.INSTANCE;
}

@Override
public void proces(Message message)
{

}

private static class LogManagerHolder {

private static final LogManager INSTANCE = new LogManager();
}

public void insertLog(String text)
{
comManager.addMessage(mb.buildInsertLog(personid, text));
}

}
@@ -21,13 +21,13 @@ public class MessageRecieverThread implements Runnable {

private CommMessageListener listener;

private ReadWrite rw;
private ObjectInputStream ois;

private boolean running = true;

public MessageRecieverThread(ReadWrite rw, CommMessageListener listener) {
public MessageRecieverThread(ObjectInputStream ois, CommMessageListener listener) {
this.listener = listener;
this.rw = rw;
this.ois = ois;
}

public void stop()
@@ -38,7 +38,16 @@ public void stop()
@Override
public void run() {
while (running) {
listener.recieved(rw.readMessage());
try {
Message message = null;
if ((message = (Message) ois.readObject()) != null) {
listener.recieved(message);
}
} catch (IOException ex) {
Logger.getLogger(MessageRecieverThread.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(MessageRecieverThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

@@ -9,8 +9,8 @@
import Protocol.Message;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -21,15 +21,14 @@
*/
public class MessageSenderThread implements Runnable {

private ReadWrite rw;

private ObjectOutputStream oos;
private boolean running = true;

private List<Message> toSend;

public MessageSenderThread(ReadWrite rw) {
this.rw = rw;
this.toSend = new ArrayList<>();
public MessageSenderThread(ObjectOutputStream oos) {
this.oos = oos;
this.toSend = Collections.synchronizedList(new ArrayList<>());
}

public void addMessage(Message message)
@@ -47,8 +46,12 @@ public void run() {
while(running){
if (toSend.size() > 0)
{
this.rw.sendMessage(this.toSend.get(0));
this.toSend.remove(0);
try {
this.oos.writeObject(this.toSend.get(0));
this.toSend.remove(0);
} catch (IOException ex) {
Logger.getLogger(MessageSenderThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
@@ -0,0 +1,82 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/

package FileTransfer;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Merijn
*/
public class FileManager {

private static final String LOC = "C:\\CIMSFiles\\";

private static FileManager INSTANCE;

private FileManager()
{
INSTANCE = this;
}

public static FileManager getInstance()
{
new FileManager();
return INSTANCE;
}

/**
* saves the file on the server
* @param file as byte[]
* @param fileName String of filename + extension Example("test.txt")
* @return string with the file paht on the server
*/
public String saveFile(byte[] file, String fileName)
{
try {
FileOutputStream fos = new FileOutputStream(LOC + fileName);
try {
fos.write(file);
} catch (IOException ex) {
Logger.getLogger(FileManager.class.getName()).log(Level.SEVERE, null, ex);
}
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(FileManager.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(FileManager.class.getName()).log(Level.SEVERE, null, ex);
}
return LOC + fileName;
}

/**
* loads the file form the specified file path and converts to byte[]
* @param fullPath
* @return the file as byte[]
*/
public byte[] loadFile(String fullPath) throws FileNotFoundException
{
File file = new File(fullPath);
byte[] bFile = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
try {
fis.read(bFile);
fis.close();
} catch (IOException ex) {
Logger.getLogger(FileManager.class.getName()).log(Level.SEVERE, null, ex);
}
return bFile;
}
}
@@ -8,6 +8,10 @@
import chat.AudioMessage;
import chat.ChatMessage;
import ClientApp.Administratie;
import CommunicationClient.ComManager;
import CommunicationClient.LogManager;
import Protocol.Message;
import Protocol.MessageBuilder;
import java.io.File;
import java.io.IOException;
import java.net.URL;
@@ -49,14 +53,18 @@ public class ClienttestGUIController implements Initializable
private boolean pressed;
private int teller;
private boolean audiomessage;
private LogManager logman;
private ComManager comManager;

/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb)
{
admin = Administratie.getInstance();
admin = Administratie.getInstance();
logman = LogManager.getInstance();
comManager = ComManager.getInstance();
}

@FXML
@@ -66,6 +74,7 @@ public void outputItem_Click(MouseEvent arg0) throws LineUnavailableException, I
if(message instanceof AudioMessage)
{
AudioMessage audmessage = (AudioMessage) message;
logman.insertLog("Log: Audiomessage listend by " + logman.getPersonId());
AudioInputStream audioIn = AudioSystem.getAudioInputStream(new File(audmessage.getAudiopath()));
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
@@ -78,7 +87,14 @@ private void selectUnit(ActionEvent event)
{
String naam = (String) cbBeschikbareUnits.getSelectionModel().getSelectedItem();
admin.setOntvanger(naam);

//HIER ID OPHALEN
MessageBuilder mb = new MessageBuilder();
Message retrieve = mb.buildRetrievePersonIdFromName(naam);
comManager.addMessage(retrieve);

addItemListView("[Algemeen]: je stuurt nu berichten naar: " + naam);
logman.insertLog("Log: Communicator set by" + logman.getPersonId() + "to " + naam);
}

@FXML
@@ -89,11 +105,13 @@ private void btnSend_Click(ActionEvent event)
String message = input.getText();
input.clear();
admin.sendMessage(message);
logman.insertLog("Log: chatmessage send by " + logman.getPersonId() + " to: " + admin.getCc().getOntvanger());
}
else
{
input.clear();
admin.sendAudioMessage();
logman.insertLog("Log: audiomessage send by: " + logman.getPersonId() + " to: " + admin.getCc().getOntvanger());
audiomessage = false;
}
}
@@ -108,6 +126,7 @@ private void btnRecording_Click(ActionEvent event)
admin.startRecordingAudio();
System.out.println("audio opnemen gestart");
startTimer();
logman.insertLog("Log: Started recording audiomessage " + logman.getPersonId());
}
else if(pressed)
{
@@ -119,6 +138,7 @@ else if(pressed)
timer.cancel();
teller = 0;
input.setText("druk op send om het audiobericht te versturen");
logman.insertLog("Log: Stopped recording audiomessage " + logman.getPersonId());
lbRecordTimer.setText(String.valueOf(teller));
audiomessage = true;
}
@@ -6,6 +6,7 @@
package GUI;

import ClientApp.Administratie;
import CommunicationClient.LogManager;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
@@ -71,6 +72,8 @@ else if(tfGebruikersnaam.getText().equals(""))
{
if(admin.loginEmergencyService(username, tfWachtwoord.getText()) == true)
{
LogManager logman = LogManager.getInstance();
logman.insertLog("Log: Login Chat Client By: " + logman.getPersonId());
try
{
URL location1 = getClass().getResource("clienttestGUI.fxml");
@@ -1,10 +1,14 @@
package Protocol;

import FileTransfer.FileManager;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.time.LocalDate;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.json.*;


@@ -51,6 +55,10 @@ public class MessageBuilder
public static final String InsertMessage = "insertmessage"; //
public static final String RetrieveMessages = "retrievemessages"; //
public static final String RetrieveMessagesReply = "retrievemessagesreply"; //
public static final String RetrieveCalamityWithName = "retrievecalamitywithname";
public static final String RetrieveCalamityWithNameReply = "retrievecalamitywithnamereply";
public static final String RetrievePersonIdFromName = "retrievepersonidfromname";
public static final String RetrievePersonIdFromNameReply = "'retrievepersonidfromnamereply";

private static final String token = "-";

@@ -68,6 +76,30 @@ public MessageBuilder()

}

public Message buildRetrievePersonIdFromName(String name)
{
JsonObjectBuilder jb = Json.createObjectBuilder();

jb.add("username", name);

JsonObject jo = jb.build();

Message message = new Message();
message.setText(jo.toString());
message.setType(RetrievePersonIdFromName);

return message;
}

public Message buildRetrievePersonIdFromNameReply(String json)
{
Message message = new Message();
message.setText(json);
message.setType(RetrievePersonIdFromNameReply);

return message;
}

public Message buildRetrieveCalamityInformation(int calamityid)
{
JsonObjectBuilder jb = Json.createObjectBuilder();
@@ -132,11 +164,11 @@ public Message buildRetrieveMessagesReply(String json)
return message;
}

public Message buildInsertMessage(int senderid, int receiverid, String messageS, File file)
public Message buildInsertMessage(int personid, int receiverid, String messageS, File file)
{
JsonObjectBuilder jb = Json.createObjectBuilder();

jb.add("senderid", senderid);
jb.add("personid", personid);
jb.add("receiverid", receiverid);
jb.add("message", messageS);

@@ -145,18 +177,19 @@ public Message buildInsertMessage(int senderid, int receiverid, String messageS,
Message message = new Message();
message.setText(jo.toString());
message.setType(InsertMessage);
byte[] bFile = new byte[(int) file.length()];
FileInputStream fis;
try {
fis = new FileInputStream(file);
fis.read(bFile);
fis.close();
}
catch(IOException ex)
{
}

message.setFile(bFile);

// byte[] bFile = new byte[(int) file.length()];
// FileInputStream fis;
// try {
// fis = new FileInputStream(file);
// fis.read(bFile);
// fis.close();
// }
// catch(IOException ex)
// {
// }
//
// message.setFile(bFile);

return message;
}
@@ -224,6 +257,29 @@ public Message buildRetrieveCalamityWithIdReply(String json)
return message;
}

public Message buildRetrieveCalamityWithName(String name)
{
JsonObjectBuilder jb = Json.createObjectBuilder();

jb.add("calamityname", name);

JsonObject jo = jb.build();

Message message = new Message();
message.setText(jo.toString());
message.setType(RetrieveCalamityWithName);

return message;
}

public Message buildRetrieveCalamityWithNameReply(String json)
{
Message message = new Message();
message.setText(json);
message.setType(RetrieveCalamityWithNameReply);
return message;
}

public Message buildRetrieveCalamitiesFromPersonID(int personid)
{
JsonObjectBuilder jb = Json.createObjectBuilder();
@@ -16,13 +16,15 @@ public class EmergencyUnit implements Serializable
private long serialVersionUID = 9212792848339440618L;
private String naam;
private int type;
private int personid;
private double longitude;
private double latidude;

public EmergencyUnit(String naam, int type)
public EmergencyUnit(String naam, int type, int personid)
{
this.naam = naam;
this.type = type;
this.type = type;
this.personid = personid;
}

public String getNaam()
@@ -45,6 +47,11 @@ public double getLatidude()
return latidude;
}

public int getPersonid()
{
return personid;
}

public void setLongitude(double longitude)
{
this.longitude = longitude;
Binary file not shown.
@@ -4,7 +4,7 @@
function launchApplication(jnlpfile) {
dtjava.launch( {
url : 'PTS4.jnlp',
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iUFRTNC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5QVFM0PC90aXRsZT4NCiAgICA8dmVuZG9yPk1heDwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8amZ4OmphdmFmeC1ydW50aW1lIHZlcnNpb249IjIuMisiIGhyZWY9Imh0dHA6Ly9qYXZhZGwuc3VuLmNvbS93ZWJhcHBzL2Rvd25sb2FkL0dldEZpbGUvamF2YWZ4LWxhdGVzdC93aW5kb3dzLWk1ODYvamF2YWZ4Mi5qbmxwIi8+DQogIDwvcmVzb3VyY2VzPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqMnNlIHZlcnNpb249IjEuNisiIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvYXV0b2RsL2oyc2UiLz4NCiAgICA8amFyIGhyZWY9IlBUUzQuamFyIiBzaXplPSIzMDM3NCIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJQVFM0IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icHRzNC5ndWkuR1VJIiAgbmFtZT0iUFRTNCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iUFRTNC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5QVFM0PC90aXRsZT4NCiAgICA8dmVuZG9yPk1heDwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8amZ4OmphdmFmeC1ydW50aW1lIHZlcnNpb249IjIuMisiIGhyZWY9Imh0dHA6Ly9qYXZhZGwuc3VuLmNvbS93ZWJhcHBzL2Rvd25sb2FkL0dldEZpbGUvamF2YWZ4LWxhdGVzdC93aW5kb3dzLWk1ODYvamF2YWZ4Mi5qbmxwIi8+DQogIDwvcmVzb3VyY2VzPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqMnNlIHZlcnNpb249IjEuNisiIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvYXV0b2RsL2oyc2UiLz4NCiAgICA8amFyIGhyZWY9IlBUUzQuamFyIiBzaXplPSIzMDQ0MSIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJQVFM0IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icHRzNC5ndWkuR1VJIiAgbmFtZT0iUFRTNCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
},
{
javafx : '2.2+'
@@ -23,7 +23,7 @@
placeholder : 'javafx-app-placeholder',
width : 800,
height : 600,
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iUFRTNC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5QVFM0PC90aXRsZT4NCiAgICA8dmVuZG9yPk1heDwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8amZ4OmphdmFmeC1ydW50aW1lIHZlcnNpb249IjIuMisiIGhyZWY9Imh0dHA6Ly9qYXZhZGwuc3VuLmNvbS93ZWJhcHBzL2Rvd25sb2FkL0dldEZpbGUvamF2YWZ4LWxhdGVzdC93aW5kb3dzLWk1ODYvamF2YWZ4Mi5qbmxwIi8+DQogIDwvcmVzb3VyY2VzPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqMnNlIHZlcnNpb249IjEuNisiIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvYXV0b2RsL2oyc2UiLz4NCiAgICA8amFyIGhyZWY9IlBUUzQuamFyIiBzaXplPSIzMDM3NCIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJQVFM0IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icHRzNC5ndWkuR1VJIiAgbmFtZT0iUFRTNCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iUFRTNC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5QVFM0PC90aXRsZT4NCiAgICA8dmVuZG9yPk1heDwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8amZ4OmphdmFmeC1ydW50aW1lIHZlcnNpb249IjIuMisiIGhyZWY9Imh0dHA6Ly9qYXZhZGwuc3VuLmNvbS93ZWJhcHBzL2Rvd25sb2FkL0dldEZpbGUvamF2YWZ4LWxhdGVzdC93aW5kb3dzLWk1ODYvamF2YWZ4Mi5qbmxwIi8+DQogIDwvcmVzb3VyY2VzPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqMnNlIHZlcnNpb249IjEuNisiIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvYXV0b2RsL2oyc2UiLz4NCiAgICA8amFyIGhyZWY9IlBUUzQuamFyIiBzaXplPSIzMDQ0MSIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJQVFM0IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icHRzNC5ndWkuR1VJIiAgbmFtZT0iUFRTNCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
},
{
javafx : '2.2+'
BIN +67 Bytes (100%) PTS4/PTS4/dist/PTS4.jar
Binary file not shown.
@@ -11,7 +11,7 @@
</resources>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="PTS4.jar" size="30374" download="eager" />
<jar href="PTS4.jar" size="30441" download="eager" />
</resources>
<applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="PTS4" >
<param name="requiredFXVersion" value="2.2+"/>
@@ -0,0 +1,44 @@
<html><head>
<SCRIPT src="./web-files/dtjava.js"></SCRIPT>
<script>
function launchApplication(jnlpfile) {
dtjava.launch( {
url : 'PTS4.jnlp',
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iUFRTNC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5QVFM0PC90aXRsZT4NCiAgICA8dmVuZG9yPk1heDwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8amZ4OmphdmFmeC1ydW50aW1lIHZlcnNpb249IjIuMisiIGhyZWY9Imh0dHA6Ly9qYXZhZGwuc3VuLmNvbS93ZWJhcHBzL2Rvd25sb2FkL0dldEZpbGUvamF2YWZ4LWxhdGVzdC93aW5kb3dzLWk1ODYvamF2YWZ4Mi5qbmxwIi8+DQogIDwvcmVzb3VyY2VzPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqMnNlIHZlcnNpb249IjEuNisiIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvYXV0b2RsL2oyc2UiLz4NCiAgICA8amFyIGhyZWY9IlBUUzQuamFyIiBzaXplPSIzMDQ0MSIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJQVFM0IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icHRzNC5ndWkuR1VJIiAgbmFtZT0iUFRTNCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
},
{
javafx : '2.2+'
},
{}
);
return false;
}
</script>

<script>
function javafxEmbed() {
dtjava.embed(
{
url : 'PTS4.jnlp',
placeholder : 'javafx-app-placeholder',
width : 800,
height : 600,
jnlp_content : 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxqbmxwIHNwZWM9IjEuMCIgeG1sbnM6amZ4PSJodHRwOi8vamF2YWZ4LmNvbSIgaHJlZj0iUFRTNC5qbmxwIj4NCiAgPGluZm9ybWF0aW9uPg0KICAgIDx0aXRsZT5QVFM0PC90aXRsZT4NCiAgICA8dmVuZG9yPk1heDwvdmVuZG9yPg0KICAgIDxkZXNjcmlwdGlvbj5udWxsPC9kZXNjcmlwdGlvbj4NCiAgICA8b2ZmbGluZS1hbGxvd2VkLz4NCiAgPC9pbmZvcm1hdGlvbj4NCiAgPHJlc291cmNlcz4NCiAgICA8amZ4OmphdmFmeC1ydW50aW1lIHZlcnNpb249IjIuMisiIGhyZWY9Imh0dHA6Ly9qYXZhZGwuc3VuLmNvbS93ZWJhcHBzL2Rvd25sb2FkL0dldEZpbGUvamF2YWZ4LWxhdGVzdC93aW5kb3dzLWk1ODYvamF2YWZ4Mi5qbmxwIi8+DQogIDwvcmVzb3VyY2VzPg0KICA8cmVzb3VyY2VzPg0KICAgIDxqMnNlIHZlcnNpb249IjEuNisiIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvYXV0b2RsL2oyc2UiLz4NCiAgICA8amFyIGhyZWY9IlBUUzQuamFyIiBzaXplPSIzMDQ0MSIgZG93bmxvYWQ9ImVhZ2VyIiAvPg0KICA8L3Jlc291cmNlcz4NCiAgPGFwcGxldC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0iY29tLmphdmFmeC5tYWluLk5vSmF2YUZYRmFsbGJhY2siICBuYW1lPSJQVFM0IiA+DQogICAgPHBhcmFtIG5hbWU9InJlcXVpcmVkRlhWZXJzaW9uIiB2YWx1ZT0iMi4yKyIvPg0KICA8L2FwcGxldC1kZXNjPg0KICA8amZ4OmphdmFmeC1kZXNjICB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCIgbWFpbi1jbGFzcz0icHRzNC5ndWkuR1VJIiAgbmFtZT0iUFRTNCIgLz4NCiAgPHVwZGF0ZSBjaGVjaz0iYWx3YXlzIi8+DQo8L2pubHA+DQo='
},
{
javafx : '2.2+'
},
{}
);
}
<!-- Embed FX application into web page once page is loaded -->
dtjava.addOnloadCallback(javafxEmbed);
</script>

</head><body>
<h2>Test page for <b>PTS4</b></h2>
<b>Webstart:</b> <a href='PTS4.jnlp' onclick="return launchApplication('PTS4.jnlp');">click to launch this app as webstart</a><br><hr><br>

<!-- Applet will be inserted here -->
<div id='javafx-app-placeholder'></div>
</body></html>
Binary file not shown.
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="PTS4.jnlp">
<information>
<title>PTS4</title>
<vendor>Max</vendor>
<description>null</description>
<offline-allowed/>
</information>
<resources>
<jfx:javafx-runtime version="2.2+" href="http://javadl.sun.com/webapps/download/GetFile/javafx-latest/windows-i586/javafx2.jnlp"/>
</resources>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="PTS4.jar" size="30441" download="eager" />
</resources>
<applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="PTS4" >
<param name="requiredFXVersion" value="2.2+"/>
</applet-desc>
<jfx:javafx-desc width="800" height="600" main-class="pts4.gui.GUI" name="PTS4" />
<update check="always"/>
</jnlp>

Large diffs are not rendered by default.

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -2,13 +2,6 @@
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/C:/Users/Leo/Documents/GitHub/pts4/serverJava/PTS4/PTS4/src/Audio/AudioHandler.java</file>
<file>file:/C:/Users/Leo/Documents/GitHub/pts4/serverJava/PTS4/PTS4/src/pts4/chatserver/Server.java</file>
<file>file:/C:/Users/Leo/Documents/GitHub/pts4/serverJava/PTS4/PTS4/src/pts4/chatserver/Client.java</file>
<file>file:/C:/Users/Leo/Documents/GitHub/pts4/serverJava/PTS4/PTS4/src/pts4/gui/ServerGUIController.java</file>
<file>file:/C:/Users/Leo/Documents/GitHub/pts4/serverJava/PTS4/PTS4/src/pts4/chatserver/WriteFileThread.java</file>
<file>file:/C:/Users/Leo/Documents/GitHub/pts4/serverJava/PTS4/PTS4/src/chat/AudioMessage.java</file>
</group>
<group/>
</open-files>
</project-private>
@@ -13,17 +13,18 @@
*/
public class EmergencyUnit implements Serializable
{
private long serialVersionUID = 9212792848339440618L;
private String naam;
private int type;
private int personid;
private double longitude;
private double latidude;

public EmergencyUnit(String naam, int type)
public EmergencyUnit(String naam, int type, int personid)
{
this.naam = naam;
this.type = type;
this.longitude = longitude;
this.latidude = latidude;
this.type = type;
this.personid = personid;
}

public String getNaam()
@@ -46,6 +47,11 @@ public double getLatidude()
return latidude;
}

public int getPersonid()
{
return personid;
}

public void setLongitude(double longitude)
{
this.longitude = longitude;
@@ -25,10 +25,6 @@
import javafx.collections.ObservableList;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;