@@ -0,0 +1,81 @@ | |||
/* | |||
* 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 netz.controller; | |||
import java.awt.event.ActionEvent; | |||
import java.awt.event.ActionListener; | |||
import java.io.IOException; | |||
import java.net.ServerSocket; | |||
import java.net.Socket; | |||
import java.util.logging.Logger; | |||
import ohmlogger.OhmLogger; | |||
import netz.model.ChatModel; | |||
import netz.view.ChatView; | |||
/** | |||
* | |||
* @author hd, chris | |||
*/ | |||
public class CommandConnect implements ActionListener | |||
{ | |||
private static Logger lg = OhmLogger.getLogger(); | |||
ChatView view; | |||
ChatModel model; | |||
private static final int PORT = 35000; | |||
private static final String IP_ADRESSE = "127.0.0.1"; | |||
public CommandConnect(ChatView view, ChatModel transmitter) | |||
{ | |||
this.view = view; | |||
this.model = transmitter; | |||
} | |||
public void registerEvents(){ | |||
view.getBtnSetServer().addActionListener(this); | |||
view.getBtnSetClient().addActionListener(this); | |||
} | |||
@Override | |||
public void actionPerformed(ActionEvent e) { | |||
Object src = e.getSource(); | |||
// connect to server | |||
if(src == view.getBtnSetServer()){ | |||
synchronized (this){ | |||
try { | |||
view.getLblType().setText("Server"); | |||
ServerSocket sSocket = new ServerSocket(PORT); | |||
lg.info("Server: Warte auf Verbindung ..."); | |||
Socket s = sSocket.accept(); // Achtung: blockiert! | |||
lg.info("Server: Verbindung akzeptiert"); | |||
model.setSocket(s); | |||
} catch (IOException ex) { | |||
lg.severe(ex.toString()); | |||
} | |||
} | |||
} | |||
// connect to vlient | |||
if(src == view.getBtnSetClient()){ | |||
synchronized (this){ | |||
try { | |||
view.getLblType().setText("Client"); | |||
lg.info("Client: verbinde ..."); | |||
Socket s = new Socket(IP_ADRESSE, PORT); // Achtung: blockiert! | |||
lg.info("Client: Verbindung hergestellt"); | |||
model.setSocket(s); | |||
} catch (IOException ex) { | |||
lg.severe(ex.toString()); | |||
} | |||
} | |||
} | |||
} | |||
} |
@@ -0,0 +1,52 @@ | |||
/* | |||
* 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 netz.controller; | |||
import java.awt.event.ActionEvent; | |||
import java.awt.event.ActionListener; | |||
import java.util.logging.Logger; | |||
import ohmlogger.OhmLogger; | |||
import netz.model.ChatModel; | |||
import netz.view.ChatView; | |||
/** | |||
* | |||
* @author hd, christ | |||
*/ | |||
public class CommandSend implements ActionListener | |||
{ | |||
private static Logger lg = OhmLogger.getLogger(); | |||
ChatView view; | |||
ChatModel model; | |||
public CommandSend(ChatView view, ChatModel model) | |||
{ | |||
this.view = view; | |||
this.model = model; | |||
} | |||
public void registerEvents(){ | |||
view.getBtnSend().addActionListener(this); | |||
} | |||
@Override | |||
public void actionPerformed(ActionEvent e) | |||
{ | |||
Object src = e.getSource(); | |||
if(src == view.getBtnSend()){ | |||
String msg = view.getTxtField().getText(); | |||
if(msg != ""){ | |||
model.sendMessage(msg); | |||
view.getLblStatusDialog().setText("Nachricht gesendet"); | |||
view.getjTextArea().append("Ich: " + msg +"\n"); | |||
} | |||
view.getTxtField().setText(""); | |||
} | |||
} | |||
} |
@@ -0,0 +1,63 @@ | |||
/* | |||
* 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 netz.controller; | |||
import java.util.concurrent.Flow; | |||
import java.util.logging.Logger; | |||
import ohmlogger.OhmLogger; | |||
import netz.model.ChatModel; | |||
import netz.view.ChatView; | |||
/** | |||
* | |||
* @author hd, chris | |||
*/ | |||
public class ReceiveAdapter implements Flow.Subscriber<String> | |||
{ | |||
private static Logger lg = OhmLogger.getLogger(); | |||
private ChatView view; | |||
private ChatModel model; | |||
private Flow.Subscription subscription; | |||
public ReceiveAdapter(ChatView view, ChatModel model) | |||
{ | |||
this.view = view; | |||
this.model = model; | |||
} | |||
public void subscribe() | |||
{ | |||
model.addSubscription(this); | |||
} | |||
@Override | |||
public void onSubscribe(Flow.Subscription subscription) | |||
{ | |||
this.subscription = subscription; | |||
subscription.request(1); | |||
} | |||
@Override | |||
public void onNext(String item) | |||
{ | |||
view.getLblStatusDialog().setText("Nachricht empfangen"); | |||
view.getjTextArea().append("Partner: " + item + "\n"); | |||
//System.out.println(item); | |||
} | |||
@Override | |||
public void onError(Throwable throwable) | |||
{ | |||
} | |||
@Override | |||
public void onComplete() | |||
{ | |||
} | |||
} |