package controller; | package controller; | ||||
import controller.commands.CommandInvite; | |||||
import controller.commands.CommandRegister; | |||||
import gui.Hauptfenster; | import gui.Hauptfenster; | ||||
import java.awt.event.ActionEvent; | import java.awt.event.ActionEvent; | ||||
import java.awt.event.ActionListener; | import java.awt.event.ActionListener; | ||||
import java.text.ParseException; | |||||
import java.util.logging.Level; | |||||
import java.util.logging.Logger; | import java.util.logging.Logger; | ||||
import javax.sdp.SdpException; | |||||
import javax.sip.InvalidArgumentException; | |||||
import javax.sip.SipException; | |||||
import logger.OhmLogger; | import logger.OhmLogger; | ||||
import model.VoIP; | import model.VoIP; | ||||
private static final Logger lc = OhmLogger.getLogger(); | private static final Logger lc = OhmLogger.getLogger(); | ||||
private VoIP model; | private VoIP model; | ||||
private Hauptfenster view; | private Hauptfenster view; | ||||
private CommandInvoker invoker; | |||||
public CommandController(VoIP model, Hauptfenster view) | public CommandController(VoIP model, Hauptfenster view) | ||||
{ | { | ||||
this.model = model; | this.model = model; | ||||
this.view = view; | this.view = view; | ||||
invoker = new CommandInvoker(); | |||||
} | } | ||||
public void registerEvents() | public void registerEvents() | ||||
view.getBtn1().addActionListener(this); | view.getBtn1().addActionListener(this); | ||||
view.getBtn2().addActionListener(this); | view.getBtn2().addActionListener(this); | ||||
} | } | ||||
public void registerCommands() | |||||
{ | |||||
//invoker.addCommand(view.getMnuioeffnen(), new CommandOpen(view, model)); | |||||
invoker.addCommand(view.getBtn1(), new CommandRegister(model, view)); | |||||
invoker.addCommand(view.getBtn2(), new CommandInvite(model, view)); | |||||
} | |||||
@Override | @Override | ||||
public void actionPerformed(ActionEvent e) | public void actionPerformed(ActionEvent e) | ||||
{ | { | ||||
Object key = e.getSource(); | Object key = e.getSource(); | ||||
if (key.equals(view.getBtn1())) | |||||
{ | |||||
lc.info("Register Butten geklickt"); | |||||
try | |||||
{ | |||||
model.sendRegister("123123", 1); | |||||
} | |||||
catch (ParseException|InvalidArgumentException|SipException ex) | |||||
{ | |||||
lc.getLogger(CommandController.class.getName()).log(Level.SEVERE, null, ex); | |||||
} | |||||
} | |||||
if(key.equals(view.getBtn2())) | |||||
{ | |||||
try { | |||||
lc.info("Invite Button geklickt"); | |||||
model.sendInvitation("23", 2); | |||||
} | |||||
catch (ParseException|InvalidArgumentException|SdpException|SipException ex) { | |||||
lc.getLogger(CommandController.class.getName()).log(Level.SEVERE, null, ex); | |||||
} | |||||
} | |||||
invoker.executeCommand(key); | |||||
} | } | ||||
} | } |
/* | |||||
* 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 controller; | |||||
/** | |||||
* | |||||
* @author Normal | |||||
*/ | |||||
public interface CommandInterface | |||||
{ | |||||
public void execute(); | |||||
public void undo(); | |||||
public Boolean isundoable(); | |||||
} |
/* | |||||
* 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 controller; | |||||
import java.util.HashMap; | |||||
import java.util.Stack; | |||||
/** | |||||
* | |||||
* @author Normal | |||||
*/ | |||||
public class CommandInvoker | |||||
{ | |||||
private HashMap<Object, CommandInterface> commands; | |||||
private Stack<CommandInterface> undoStack; | |||||
public CommandInvoker() | |||||
{ | |||||
commands = new HashMap<>(); | |||||
undoStack = new Stack<>(); | |||||
} | |||||
public void addCommand(Object key,CommandInterface value) | |||||
{ | |||||
commands.put(key,value); | |||||
} | |||||
public void executeCommand(Object key) | |||||
{ | |||||
commands.get(key).execute(); | |||||
if(commands.get(key).isundoable()==true) | |||||
{ | |||||
undoStack.push(commands.get(key)); | |||||
} | |||||
} | |||||
public void undoCommand(Object key) | |||||
{ | |||||
try | |||||
{ | |||||
undoStack.pop().undo(); | |||||
} | |||||
catch (Exception e) | |||||
{ | |||||
} | |||||
} | |||||
} |
/* | |||||
* 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 controller.commands; | |||||
import controller.CommandInterface; | |||||
import gui.Hauptfenster; | |||||
import java.text.ParseException; | |||||
import java.util.logging.Level; | |||||
import java.util.logging.Logger; | |||||
import javax.sdp.SdpException; | |||||
import javax.sip.InvalidArgumentException; | |||||
import javax.sip.SipException; | |||||
import logger.OhmLogger; | |||||
import model.VoIP; | |||||
/** | |||||
* | |||||
* @author Normal | |||||
*/ | |||||
public class CommandInvite implements CommandInterface | |||||
{ | |||||
private static final Logger lginvite = OhmLogger.getLogger(); | |||||
private VoIP model; | |||||
private Hauptfenster view; | |||||
public CommandInvite(VoIP model, Hauptfenster view) | |||||
{ | |||||
this.model = model; | |||||
this.view = view; | |||||
} | |||||
@Override | |||||
public void execute() | |||||
{ | |||||
try | |||||
{ view.getTxtArea().append("Einladung an " + view.getTxtServerIP().getText() + " gesendet\n"); | |||||
model.sendInvitation(view.getTxtcallIP().getText(), 5078); | |||||
} | |||||
catch (ParseException|InvalidArgumentException|SdpException|SipException ex) | |||||
{ | |||||
view.getTxtArea().append("Einladung fehlgeschlagen"); | |||||
lginvite.getLogger(CommandInvite.class.getName()).log(Level.SEVERE, null, ex); | |||||
} | |||||
} | |||||
@Override | |||||
public void undo() | |||||
{ | |||||
} | |||||
@Override | |||||
public Boolean isundoable() | |||||
{ | |||||
return false; | |||||
} | |||||
} |
/* | |||||
* 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 controller.commands; | |||||
import controller.CommandInterface; | |||||
import gui.Hauptfenster; | |||||
import java.text.ParseException; | |||||
import java.util.logging.Level; | |||||
import java.util.logging.Logger; | |||||
import javax.sip.InvalidArgumentException; | |||||
import javax.sip.SipException; | |||||
import logger.OhmLogger; | |||||
import model.VoIP; | |||||
/** | |||||
* | |||||
* @author Normal | |||||
*/ | |||||
public class CommandRegister implements CommandInterface | |||||
{ | |||||
private static final Logger lgregister = OhmLogger.getLogger(); | |||||
private VoIP model; | |||||
private Hauptfenster view; | |||||
public CommandRegister(VoIP model, Hauptfenster view) | |||||
{ | |||||
this.model = model; | |||||
this.view = view; | |||||
} | |||||
@Override | |||||
public void execute() | |||||
{ | |||||
try | |||||
{ | |||||
view.getTxtArea().append("Registrierung an " + view.getTxtServerIP().getText() + " gesendet\n"); | |||||
model.sendRegister(view.getTxtServerIP().getText(), 5078); | |||||
} | |||||
catch (ParseException|InvalidArgumentException|SipException ex) | |||||
{ | |||||
view.getTxtArea().append("Registrierung fehlgeschlagen"); | |||||
lgregister.getLogger(CommandRegister.class.getName()).log(Level.SEVERE, null, ex); | |||||
} | |||||
} | |||||
@Override | |||||
public void undo() | |||||
{ | |||||
} | |||||
@Override | |||||
public Boolean isundoable() | |||||
{ | |||||
return false; | |||||
} | |||||
} |
</Component> | </Component> | ||||
</SubComponents> | </SubComponents> | ||||
</Container> | </Container> | ||||
<Component class="javax.swing.JTextField" name="textField"> | |||||
<Constraints> | |||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> | |||||
<BorderConstraints direction="First"/> | |||||
</Constraint> | |||||
</Constraints> | |||||
</Component> | |||||
<Container class="javax.swing.JPanel" name="jPanel1"> | <Container class="javax.swing.JPanel" name="jPanel1"> | ||||
<Constraints> | <Constraints> | ||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> | <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> | ||||
</Component> | </Component> | ||||
</SubComponents> | </SubComponents> | ||||
</Container> | </Container> | ||||
<Container class="javax.swing.JPanel" name="jPanel3"> | |||||
<Constraints> | |||||
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> | |||||
<BorderConstraints direction="First"/> | |||||
</Constraint> | |||||
</Constraints> | |||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/> | |||||
<SubComponents> | |||||
<Container class="javax.swing.JPanel" name="jPanel4"> | |||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"> | |||||
<Property name="axis" type="int" value="1"/> | |||||
</Layout> | |||||
<SubComponents> | |||||
<Component class="javax.swing.JLabel" name="jLabel1"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="My IP:"/> | |||||
<Property name="focusable" type="boolean" value="false"/> | |||||
<Property name="inheritsPopupMenu" type="boolean" value="false"/> | |||||
</Properties> | |||||
</Component> | |||||
<Component class="javax.swing.JLabel" name="jLabel2"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="Server IP:"/> | |||||
</Properties> | |||||
</Component> | |||||
<Component class="javax.swing.JLabel" name="jLabel3"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="Call IP:"/> | |||||
</Properties> | |||||
</Component> | |||||
</SubComponents> | |||||
</Container> | |||||
<Container class="javax.swing.JPanel" name="jPanel2"> | |||||
<Layout class="org.netbeans.modules.form.compat2.layouts.DesignBoxLayout"> | |||||
<Property name="axis" type="int" value="1"/> | |||||
</Layout> | |||||
<SubComponents> | |||||
<Component class="javax.swing.JLabel" name="lblmyIP"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="xxx.xxx.xxx.xxx"/> | |||||
<Property name="toolTipText" type="java.lang.String" value=""/> | |||||
<Property name="verticalAlignment" type="int" value="1"/> | |||||
</Properties> | |||||
</Component> | |||||
<Component class="javax.swing.JTextField" name="txtServerIP"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="xxx.xxx.xxx.xxx"/> | |||||
</Properties> | |||||
</Component> | |||||
<Component class="javax.swing.JTextField" name="txtcallIP"> | |||||
<Properties> | |||||
<Property name="text" type="java.lang.String" value="xxx.xxx.xxx.xxx"/> | |||||
</Properties> | |||||
</Component> | |||||
</SubComponents> | |||||
</Container> | |||||
</SubComponents> | |||||
</Container> | |||||
</SubComponents> | </SubComponents> | ||||
</Form> | </Form> |
/** | /** | ||||
* @return the textField | * @return the textField | ||||
*/ | */ | ||||
public javax.swing.JTextField getTextField() | |||||
{ | |||||
return textField; | |||||
} | |||||
/** | /** | ||||
* @param textField the textField to set | * @param textField the textField to set | ||||
*/ | */ | ||||
public void setTextField(javax.swing.JTextField textField) | |||||
{ | |||||
this.textField = textField; | |||||
} | |||||
/** | /** | ||||
* @return the txtArea | * @return the txtArea | ||||
jScrollPane1 = new javax.swing.JScrollPane(); | jScrollPane1 = new javax.swing.JScrollPane(); | ||||
txtArea = new javax.swing.JTextArea(); | txtArea = new javax.swing.JTextArea(); | ||||
textField = new javax.swing.JTextField(); | |||||
jPanel1 = new javax.swing.JPanel(); | jPanel1 = new javax.swing.JPanel(); | ||||
btn1 = new javax.swing.JButton(); | btn1 = new javax.swing.JButton(); | ||||
btn2 = new javax.swing.JButton(); | btn2 = new javax.swing.JButton(); | ||||
jButton1 = new javax.swing.JButton(); | jButton1 = new javax.swing.JButton(); | ||||
jPanel3 = new javax.swing.JPanel(); | |||||
jPanel4 = new javax.swing.JPanel(); | |||||
jLabel1 = new javax.swing.JLabel(); | |||||
jLabel2 = new javax.swing.JLabel(); | |||||
jLabel3 = new javax.swing.JLabel(); | |||||
jPanel2 = new javax.swing.JPanel(); | |||||
lblmyIP = new javax.swing.JLabel(); | |||||
txtServerIP = new javax.swing.JTextField(); | |||||
txtcallIP = new javax.swing.JTextField(); | |||||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | ||||
jScrollPane1.setViewportView(txtArea); | jScrollPane1.setViewportView(txtArea); | ||||
getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); | getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); | ||||
getContentPane().add(textField, java.awt.BorderLayout.PAGE_START); | |||||
btn1.setText("Register"); | btn1.setText("Register"); | ||||
btn1.setToolTipText("Registrierung am Server"); | btn1.setToolTipText("Registrierung am Server"); | ||||
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END); | getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END); | ||||
jPanel4.setLayout(new javax.swing.BoxLayout(jPanel4, javax.swing.BoxLayout.Y_AXIS)); | |||||
jLabel1.setText("My IP:"); | |||||
jLabel1.setFocusable(false); | |||||
jLabel1.setInheritsPopupMenu(false); | |||||
jPanel4.add(jLabel1); | |||||
jLabel2.setText("Server IP:"); | |||||
jPanel4.add(jLabel2); | |||||
jLabel3.setText("Call IP:"); | |||||
jPanel4.add(jLabel3); | |||||
jPanel3.add(jPanel4); | |||||
jPanel2.setLayout(new javax.swing.BoxLayout(jPanel2, javax.swing.BoxLayout.Y_AXIS)); | |||||
lblmyIP.setText("xxx.xxx.xxx.xxx"); | |||||
lblmyIP.setToolTipText(""); | |||||
lblmyIP.setVerticalAlignment(javax.swing.SwingConstants.TOP); | |||||
jPanel2.add(lblmyIP); | |||||
txtServerIP.setText("xxx.xxx.xxx.xxx"); | |||||
jPanel2.add(txtServerIP); | |||||
txtcallIP.setText("xxx.xxx.xxx.xxx"); | |||||
jPanel2.add(txtcallIP); | |||||
jPanel3.add(jPanel2); | |||||
getContentPane().add(jPanel3, java.awt.BorderLayout.PAGE_START); | |||||
pack(); | pack(); | ||||
setLocationRelativeTo(null); | setLocationRelativeTo(null); | ||||
}// </editor-fold>//GEN-END:initComponents | }// </editor-fold>//GEN-END:initComponents | ||||
private javax.swing.JButton btn1; | private javax.swing.JButton btn1; | ||||
private javax.swing.JButton btn2; | private javax.swing.JButton btn2; | ||||
private javax.swing.JButton jButton1; | private javax.swing.JButton jButton1; | ||||
private javax.swing.JLabel jLabel1; | |||||
private javax.swing.JLabel jLabel2; | |||||
private javax.swing.JLabel jLabel3; | |||||
private javax.swing.JPanel jPanel1; | private javax.swing.JPanel jPanel1; | ||||
private javax.swing.JPanel jPanel2; | |||||
private javax.swing.JPanel jPanel3; | |||||
private javax.swing.JPanel jPanel4; | |||||
private javax.swing.JScrollPane jScrollPane1; | private javax.swing.JScrollPane jScrollPane1; | ||||
private javax.swing.JTextField textField; | |||||
private javax.swing.JLabel lblmyIP; | |||||
private javax.swing.JTextArea txtArea; | private javax.swing.JTextArea txtArea; | ||||
private javax.swing.JTextField txtServerIP; | |||||
private javax.swing.JTextField txtcallIP; | |||||
// End of variables declaration//GEN-END:variables | // End of variables declaration//GEN-END:variables | ||||
/** | |||||
* @return the lblmyIP | |||||
*/ | |||||
public javax.swing.JLabel getLblmyIP() | |||||
{ | |||||
return lblmyIP; | |||||
} | |||||
/** | |||||
* @param lblmyIP the lblmyIP to set | |||||
*/ | |||||
public void setLblmyIP(javax.swing.JLabel lblmyIP) | |||||
{ | |||||
this.lblmyIP = lblmyIP; | |||||
} | |||||
/** | |||||
* @return the txtServerIP | |||||
*/ | |||||
public javax.swing.JTextField getTxtServerIP() | |||||
{ | |||||
return txtServerIP; | |||||
} | |||||
/** | |||||
* @return the txtcallIP | |||||
*/ | |||||
public javax.swing.JTextField getTxtcallIP() | |||||
{ | |||||
return txtcallIP; | |||||
} | |||||
} | } |
import gov.nist.javax.sip.DialogTimeoutEvent; | import gov.nist.javax.sip.DialogTimeoutEvent; | ||||
import gov.nist.javax.sip.SipListenerExt; | import gov.nist.javax.sip.SipListenerExt; | ||||
import gui.Hauptfenster; | |||||
import java.net.InetAddress; | import java.net.InetAddress; | ||||
import java.text.ParseException; | import java.text.ParseException; | ||||
import java.util.*; | import java.util.*; | ||||
*/ | */ | ||||
public class VoIP implements SipListenerExt | public class VoIP implements SipListenerExt | ||||
{ | { | ||||
Hauptfenster view; //später entfernen wegen Zugriff | |||||
private static final Logger lg = OhmLogger.getLogger(); | private static final Logger lg = OhmLogger.getLogger(); | ||||
SipFactory sipFactory; // Used to access the SIP API. | SipFactory sipFactory; // Used to access the SIP API. | ||||
SipStack sipStack; // The SIP stack. | SipStack sipStack; // The SIP stack. | ||||
public VoIP() //Konstruktor für eigene Daten | |||||
public VoIP(Hauptfenster view) //Konstruktor für eigene Daten | |||||
{ | { | ||||
this.view = view; | |||||
try | try | ||||
{ | { | ||||
//wird an sich erstmal nicht gebraucht aber später sinnvoll um eigene Daten zu initialisieren | //wird an sich erstmal nicht gebraucht aber später sinnvoll um eigene Daten zu initialisieren | ||||
this.properties = new Properties(); | this.properties = new Properties(); | ||||
this.properties.setProperty("javax.sip.STACK_NAME", "stack"); | this.properties.setProperty("javax.sip.STACK_NAME", "stack"); | ||||
this.sipStack = this.sipFactory.createSipStack(this.properties); | this.sipStack = this.sipFactory.createSipStack(this.properties); | ||||
this.messageFactory = this.sipFactory.createMessageFactory(); | |||||
this.messageFactory = this.sipFactory.createMessageFactory(); | |||||
this.headerFactory = this.sipFactory.createHeaderFactory(); | this.headerFactory = this.sipFactory.createHeaderFactory(); | ||||
this.addressFactory = this.sipFactory.createAddressFactory(); | this.addressFactory = this.sipFactory.createAddressFactory(); | ||||
this.listeningPoint = this.sipStack.createListeningPoint(this.myIPAddress, this.myPort, this.protocolTyp); | this.listeningPoint = this.sipStack.createListeningPoint(this.myIPAddress, this.myPort, this.protocolTyp); | ||||
request.addHeader(allow); | request.addHeader(allow); | ||||
request.addHeader(expire); | request.addHeader(expire); | ||||
this.sipProvider.sendRequest(request); | this.sipProvider.sendRequest(request); | ||||
view.getTxtArea().append("Erfolgreiche Registierung\n"); | |||||
lg.info("Erfolgreiches Senden der Registrierung"); | lg.info("Erfolgreiches Senden der Registrierung"); | ||||
} | } | ||||
public void sendInvitation(String sipaddresse, int serverPort)throws ParseException, InvalidArgumentException, SipException, SdpException | public void sendInvitation(String sipaddresse, int serverPort)throws ParseException, InvalidArgumentException, SipException, SdpException | ||||
response.addHeader(allow); | response.addHeader(allow); | ||||
response.addHeader(allowevents); | response.addHeader(allowevents); | ||||
this.sipProvider.sendResponse(response); | this.sipProvider.sendResponse(response); | ||||
view.getTxtArea().append("Server Option Request erfolgreich beantwortet\n"); | |||||
lg.info("Erfolgreiches senden des Headers"); | lg.info("Erfolgreiches senden des Headers"); | ||||
} | } | ||||
catch (ParseException | SipException ex) | catch (ParseException | SipException ex) | ||||
//Aktive Kommunikation | //Aktive Kommunikation | ||||
else if ((Request.INVITE).equals(requestEvent.getRequest().getMethod())) // Invite von anderem Benutzer | else if ((Request.INVITE).equals(requestEvent.getRequest().getMethod())) // Invite von anderem Benutzer | ||||
{ | { | ||||
view.getTxtArea().append("Werde von xxx angerufen"); | |||||
lg.info("Hab Invitation bekommen"); | lg.info("Hab Invitation bekommen"); | ||||
try | try | ||||
{ | { | ||||
return sessionDescription; | return sessionDescription; | ||||
} | } | ||||
//Get Methoden falls man mal die Parameter braucht | |||||
public String getmyName() | |||||
{ | |||||
return myName; | |||||
} | |||||
public Integer getMyPort() | |||||
{ | |||||
return myPort; | |||||
} | |||||
public String getMyIPAdress() | |||||
{ | |||||
return myIPAddress; | |||||
} | |||||
@Override | @Override | ||||
public void processTimeout(TimeoutEvent timeoutEvent) | public void processTimeout(TimeoutEvent timeoutEvent) |
import controller.CommandController; | import controller.CommandController; | ||||
import gui.Hauptfenster; | import gui.Hauptfenster; | ||||
import java.net.InetAddress; | |||||
import java.net.UnknownHostException; | |||||
import java.text.ParseException; | import java.text.ParseException; | ||||
import model.VoIP; | import model.VoIP; | ||||
/** | /** | ||||
*/ | */ | ||||
public class Start | public class Start | ||||
{ | { | ||||
public Start() throws ParseException | |||||
public Start() throws ParseException, UnknownHostException | |||||
{ | { | ||||
Hauptfenster view = new Hauptfenster(); | Hauptfenster view = new Hauptfenster(); | ||||
VoIP model = new VoIP(); | |||||
VoIP model = new VoIP(view); | |||||
CommandController controller = new CommandController(model, view); | CommandController controller = new CommandController(model, view); | ||||
controller.registerEvents(); | controller.registerEvents(); | ||||
//view.setExtendedState(Frame.MAXIMIZED_BOTH); | |||||
controller.registerCommands(); | |||||
view.getLblmyIP().setText(InetAddress.getLocalHost().getHostAddress()); | |||||
view.getTxtServerIP().setText("192.168.100.11"); | |||||
view.getTxtcallIP().setText("192.168.100.xxx"); | |||||
view.setExtendedState(view.MAXIMIZED_BOTH); | |||||
view.setTitle("TestOberfläche VoIP Phone"); | view.setTitle("TestOberfläche VoIP Phone"); | ||||
view.setVisible(true); | view.setVisible(true); | ||||
/** | /** | ||||
* @param args the command line arguments | * @param args the command line arguments | ||||
*/ | */ | ||||
public static void main(String[] args) throws ParseException | |||||
public static void main(String[] args) throws ParseException, UnknownHostException | |||||
{ | { | ||||
new Start(); | new Start(); | ||||
} | } |