<propertyfile file="${built-jar.properties}"> | <propertyfile file="${built-jar.properties}"> | ||||
<entry key="${basedir}" value=""/> | <entry key="${basedir}" value=""/> | ||||
</propertyfile> | </propertyfile> | ||||
<antcall target="-maybe-call-dep"> | |||||
<param name="call.built.properties" value="${built-jar.properties}"/> | |||||
<param location="${project.Aufgabe9_mvcGrafik}" name="call.subproject"/> | |||||
<param location="${project.Aufgabe9_mvcGrafik}/build.xml" name="call.script"/> | |||||
<param name="call.target" value="jar"/> | |||||
<param name="transfer.built-jar.properties" value="${built-jar.properties}"/> | |||||
<param name="transfer.not.archive.disabled" value="true"/> | |||||
<param name="transfer.do.jlink" value="false"/> | |||||
</antcall> | |||||
</target> | </target> | ||||
<target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/> | <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/> | ||||
<target depends="init" name="-check-automatic-build"> | <target depends="init" name="-check-automatic-build"> | ||||
<propertyfile file="${built-clean.properties}"> | <propertyfile file="${built-clean.properties}"> | ||||
<entry key="${basedir}" value=""/> | <entry key="${basedir}" value=""/> | ||||
</propertyfile> | </propertyfile> | ||||
<antcall target="-maybe-call-dep"> | |||||
<param name="call.built.properties" value="${built-clean.properties}"/> | |||||
<param location="${project.Aufgabe9_mvcGrafik}" name="call.subproject"/> | |||||
<param location="${project.Aufgabe9_mvcGrafik}/build.xml" name="call.script"/> | |||||
<param name="call.target" value="clean"/> | |||||
<param name="transfer.built-clean.properties" value="${built-clean.properties}"/> | |||||
<param name="transfer.not.archive.disabled" value="true"/> | |||||
<param name="transfer.do.jlink" value="false"/> | |||||
</antcall> | |||||
</target> | </target> | ||||
<target depends="init" name="-do-clean"> | <target depends="init" name="-do-clean"> | ||||
<delete dir="${build.dir}"/> | <delete dir="${build.dir}"/> |
build.xml.data.CRC32=05f3ad23 | |||||
build.xml.data.CRC32=d624b1fd | |||||
build.xml.script.CRC32=1a88b66a | build.xml.script.CRC32=1a88b66a | ||||
build.xml.stylesheet.CRC32=f85dc8f2@1.108.0.48 | build.xml.stylesheet.CRC32=f85dc8f2@1.108.0.48 | ||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. | # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. | ||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. | # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. | ||||
nbproject/build-impl.xml.data.CRC32=05f3ad23 | |||||
nbproject/build-impl.xml.script.CRC32=fdc076e6 | |||||
nbproject/build-impl.xml.data.CRC32=d624b1fd | |||||
nbproject/build-impl.xml.script.CRC32=476a1ac9 | |||||
nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.108.0.48 | nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.108.0.48 |
excludes= | excludes= | ||||
includes=** | includes=** | ||||
jar.compress=false | jar.compress=false | ||||
javac.classpath= | |||||
javac.classpath=\ | |||||
${reference.Aufgabe9_mvcGrafik.jar} | |||||
# Space-separated list of extra javac options | # Space-separated list of extra javac options | ||||
javac.compilerargs= | javac.compilerargs= | ||||
javac.deprecation=false | javac.deprecation=false | ||||
meta.inf.dir=${src.dir}/META-INF | meta.inf.dir=${src.dir}/META-INF | ||||
mkdist.disabled=false | mkdist.disabled=false | ||||
platform.active=default_platform | platform.active=default_platform | ||||
project.Aufgabe9_mvcGrafik=../../T9_mvcGrafik/Aufgabe9_mvcGrafik | |||||
reference.Aufgabe9_mvcGrafik.jar=${project.Aufgabe9_mvcGrafik}/dist/Aufgabe9_mvcGrafik.jar | |||||
run.classpath=\ | run.classpath=\ | ||||
${javac.classpath}:\ | ${javac.classpath}:\ | ||||
${build.classes.dir} | ${build.classes.dir} |
<root id="test.src.dir"/> | <root id="test.src.dir"/> | ||||
</test-roots> | </test-roots> | ||||
</data> | </data> | ||||
<references xmlns="http://www.netbeans.org/ns/ant-project-references/1"> | |||||
<reference> | |||||
<foreign-project>Aufgabe9_mvcGrafik</foreign-project> | |||||
<artifact-type>jar</artifact-type> | |||||
<script>build.xml</script> | |||||
<target>jar</target> | |||||
<clean-target>clean</clean-target> | |||||
<id>jar</id> | |||||
</reference> | |||||
</references> | |||||
</configuration> | </configuration> | ||||
</project> | </project> |
/* | |||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license | |||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template | |||||
*/ | |||||
package ChatProgramm.model; | |||||
import java.awt.Point; | |||||
import java.io.Serializable; | |||||
import java.util.ArrayList; | |||||
import java.util.Collections; | |||||
import java.util.List; | |||||
/** | |||||
* | |||||
* @author ahren | |||||
*/ | |||||
public class Figur implements Serializable | |||||
{ | |||||
private ArrayList<Point> punkte; | |||||
public Figur(){ | |||||
punkte = new ArrayList<>(); | |||||
} | |||||
public void addPoint(Point p){ | |||||
punkte.add(p); | |||||
} | |||||
public List<Point> getPunkte() | |||||
{ | |||||
return Collections.unmodifiableList(punkte); | |||||
} | |||||
public void clear(){ | |||||
punkte.clear(); | |||||
} | |||||
} |
/* | |||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license | |||||
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template | |||||
*/ | |||||
package ChatProgramm.model; | |||||
import java.awt.Point; | |||||
import java.io.BufferedInputStream; | |||||
import java.io.BufferedOutputStream; | |||||
import java.io.FileInputStream; | |||||
import java.io.FileNotFoundException; | |||||
import java.io.FileOutputStream; | |||||
import java.io.IOException; | |||||
import java.io.ObjectInputStream; | |||||
import java.io.ObjectOutputStream; | |||||
import java.util.ArrayList; | |||||
import java.util.Collections; | |||||
import java.util.List; | |||||
import java.util.logging.Logger; | |||||
import java.util.prefs.Preferences; | |||||
import ChatProgramm.util.OhmLogger; | |||||
/** | |||||
* | |||||
* @author le | |||||
*/ | |||||
public class GrafikModel | |||||
{ | |||||
private Figur aktuelleFigur; | |||||
private ArrayList<Figur> figuren; | |||||
private Preferences pref; | |||||
private static Logger lg = OhmLogger.getLogger(); | |||||
public GrafikModel() | |||||
{ | |||||
aktuelleFigur = new Figur(); | |||||
figuren = new ArrayList<>(); | |||||
} | |||||
public void addPoint(Point p) | |||||
{ | |||||
aktuelleFigur.addPoint(p); | |||||
} | |||||
public List<Point> getPunkte() | |||||
{ | |||||
return aktuelleFigur.getPunkte(); | |||||
} | |||||
public List<Figur> getFiguren(){ | |||||
return Collections.unmodifiableList(figuren); | |||||
} | |||||
/** | |||||
* Persistenz via Serialisierung | |||||
* @param dateiname | |||||
* @throws FileNotFoundException | |||||
* @throws IOException | |||||
*/ | |||||
public void speicherePunkte(String dateiname) throws FileNotFoundException, IOException | |||||
{ | |||||
// an Preferences denken!! | |||||
FileOutputStream fos = new FileOutputStream(dateiname); | |||||
//wichtig Puffer -> Performance | |||||
BufferedOutputStream bos = new BufferedOutputStream(fos); | |||||
//Serialisierung | |||||
ObjectOutputStream oos = new ObjectOutputStream(bos); | |||||
oos.writeObject(figuren); | |||||
oos.flush(); // Puffer | |||||
oos.close(); | |||||
} | |||||
public void lesePunkte(String dateiname) throws FileNotFoundException, IOException, ClassNotFoundException | |||||
{ | |||||
// an Preferences denken!! | |||||
FileInputStream fis = new FileInputStream(dateiname); | |||||
//wichtig Puffer -> Performance | |||||
BufferedInputStream bis = new BufferedInputStream(fis); | |||||
//Serialisierung | |||||
ObjectInputStream ois = new ObjectInputStream(bis); | |||||
Object daten = ois.readObject(); // Achtung | |||||
// if (daten instanceof ArrayList) | |||||
// { | |||||
// punkte = (ArrayList<Point>)daten; | |||||
// } | |||||
//eleganter | |||||
if (daten instanceof ArrayList liste) | |||||
{ | |||||
figuren = liste; | |||||
} | |||||
} | |||||
public void endShape() { | |||||
figuren.add(aktuelleFigur); | |||||
aktuelleFigur = new Figur(); | |||||
} | |||||
/** | |||||
* Bestimmt die Adresse des zuletzt besuchten Ordners | |||||
* @return letzter Ordner | |||||
*/ | |||||
public String getPref() | |||||
{ | |||||
pref = Preferences.userNodeForPackage(getClass()); | |||||
return pref.get("lastDirectory", null); | |||||
} | |||||
/** | |||||
* Setzt die Preferenz zu dem zuletzt besuchten Ordner | |||||
* @param lastDirectory Bezeichner "lastDirectory" | |||||
* @param lastAdress Adresse des zuletzt besuchten Ordners | |||||
*/ | |||||
public void putPref(String lastDirectory, String lastAdress) | |||||
{ | |||||
pref.put(lastDirectory, lastAdress); | |||||
} | |||||
} | |||||
* regenerated by the Form Editor. | * regenerated by the Form Editor. | ||||
*/ | */ | ||||
@SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents | |||||
private void initComponents() | |||||
{ | |||||
dialogChooseMode = new javax.swing.JDialog(); | |||||
lblMode = new javax.swing.JLabel(); | |||||
BtnServer = new javax.swing.JRadioButton(); | |||||
BtnClient = new javax.swing.JRadioButton(); | |||||
jPanel1 = new javax.swing.JPanel(); | |||||
BtnConnect = new javax.swing.JButton(); | |||||
BtnGrpMode = new javax.swing.ButtonGroup(); | |||||
tfNachricht = new javax.swing.JTextField(); | |||||
jScrollPane2 = new javax.swing.JScrollPane(); | |||||
txtChat = new javax.swing.JTextArea(); | |||||
dialogChooseMode.setMinimumSize(new java.awt.Dimension(278, 208)); | |||||
dialogChooseMode.getContentPane().setLayout(new java.awt.GridLayout(0, 1)); | |||||
lblMode.setText(" Choose your mode:"); | |||||
dialogChooseMode.getContentPane().add(lblMode); | |||||
BtnGrpMode.add(BtnServer); | |||||
BtnServer.setText("Server"); | |||||
BtnServer.addActionListener(new java.awt.event.ActionListener() | |||||
{ | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) | |||||
{ | |||||
BtnServerActionPerformed(evt); | |||||
} | |||||
}); | |||||
dialogChooseMode.getContentPane().add(BtnServer); | |||||
BtnGrpMode.add(BtnClient); | |||||
BtnClient.setText("Client"); | |||||
BtnClient.addActionListener(new java.awt.event.ActionListener() | |||||
{ | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) | |||||
{ | |||||
BtnClientActionPerformed(evt); | |||||
} | |||||
}); | |||||
dialogChooseMode.getContentPane().add(BtnClient); | |||||
BtnConnect.setText("Connect"); | |||||
BtnConnect.addActionListener(new java.awt.event.ActionListener() | |||||
{ | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) | |||||
{ | |||||
BtnConnectActionPerformed(evt); | |||||
} | |||||
}); | |||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); | |||||
jPanel1.setLayout(jPanel1Layout); | |||||
jPanel1Layout.setHorizontalGroup( | |||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addGroup(jPanel1Layout.createSequentialGroup() | |||||
.addContainerGap(65, Short.MAX_VALUE) | |||||
.addComponent(BtnConnect) | |||||
.addContainerGap(76, Short.MAX_VALUE)) | |||||
); | |||||
jPanel1Layout.setVerticalGroup( | |||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addGroup(jPanel1Layout.createSequentialGroup() | |||||
.addContainerGap() | |||||
.addComponent(BtnConnect) | |||||
.addContainerGap(57, Short.MAX_VALUE)) | |||||
); | |||||
dialogChooseMode.getContentPane().add(jPanel1); | |||||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | |||||
setMinimumSize(new java.awt.Dimension(568, 548)); | |||||
addWindowListener(new java.awt.event.WindowAdapter() | |||||
{ | |||||
public void windowOpened(java.awt.event.WindowEvent evt) | |||||
{ | |||||
formWindowOpened(evt); | |||||
} | |||||
}); | |||||
tfNachricht.setToolTipText(""); | |||||
tfNachricht.addMouseListener(new java.awt.event.MouseAdapter() | |||||
{ | |||||
public void mouseClicked(java.awt.event.MouseEvent evt) | |||||
{ | |||||
tfNachrichtMouseClicked(evt); | |||||
} | |||||
}); | |||||
tfNachricht.addActionListener(new java.awt.event.ActionListener() | |||||
{ | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) | |||||
{ | |||||
tfNachrichtActionPerformed(evt); | |||||
} | |||||
}); | |||||
getContentPane().add(tfNachricht, java.awt.BorderLayout.PAGE_END); | |||||
jScrollPane2.setPreferredSize(new java.awt.Dimension(238, 150)); | |||||
txtChat.setColumns(20); | |||||
txtChat.setRows(5); | |||||
txtChat.setText("Chat:"); | |||||
jScrollPane2.setViewportView(txtChat); | |||||
getContentPane().add(jScrollPane2, java.awt.BorderLayout.CENTER); | |||||
pack(); | |||||
}// </editor-fold>//GEN-END:initComponents | |||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents | |||||
private void initComponents() { | |||||
dialogChooseMode = new javax.swing.JDialog(); | |||||
lblMode = new javax.swing.JLabel(); | |||||
BtnServer = new javax.swing.JRadioButton(); | |||||
BtnClient = new javax.swing.JRadioButton(); | |||||
jPanel1 = new javax.swing.JPanel(); | |||||
BtnConnect = new javax.swing.JButton(); | |||||
BtnGrpMode = new javax.swing.ButtonGroup(); | |||||
tfNachricht = new javax.swing.JTextField(); | |||||
jScrollPane2 = new javax.swing.JScrollPane(); | |||||
txtChat = new javax.swing.JTextArea(); | |||||
dialogChooseMode.setMinimumSize(new java.awt.Dimension(278, 208)); | |||||
dialogChooseMode.getContentPane().setLayout(new java.awt.GridLayout(0, 1)); | |||||
lblMode.setText(" Choose your mode:"); | |||||
dialogChooseMode.getContentPane().add(lblMode); | |||||
BtnGrpMode.add(BtnServer); | |||||
BtnServer.setText("Server"); | |||||
BtnServer.addActionListener(new java.awt.event.ActionListener() { | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||||
BtnServerActionPerformed(evt); | |||||
} | |||||
}); | |||||
dialogChooseMode.getContentPane().add(BtnServer); | |||||
BtnGrpMode.add(BtnClient); | |||||
BtnClient.setText("Client"); | |||||
BtnClient.addActionListener(new java.awt.event.ActionListener() { | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||||
BtnClientActionPerformed(evt); | |||||
} | |||||
}); | |||||
dialogChooseMode.getContentPane().add(BtnClient); | |||||
BtnConnect.setText("Connect"); | |||||
BtnConnect.addActionListener(new java.awt.event.ActionListener() { | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||||
BtnConnectActionPerformed(evt); | |||||
} | |||||
}); | |||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); | |||||
jPanel1.setLayout(jPanel1Layout); | |||||
jPanel1Layout.setHorizontalGroup( | |||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addGroup(jPanel1Layout.createSequentialGroup() | |||||
.addContainerGap(65, Short.MAX_VALUE) | |||||
.addComponent(BtnConnect) | |||||
.addContainerGap(76, Short.MAX_VALUE)) | |||||
); | |||||
jPanel1Layout.setVerticalGroup( | |||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) | |||||
.addGroup(jPanel1Layout.createSequentialGroup() | |||||
.addContainerGap() | |||||
.addComponent(BtnConnect) | |||||
.addContainerGap(57, Short.MAX_VALUE)) | |||||
); | |||||
dialogChooseMode.getContentPane().add(jPanel1); | |||||
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); | |||||
setMinimumSize(new java.awt.Dimension(568, 548)); | |||||
addWindowListener(new java.awt.event.WindowAdapter() { | |||||
public void windowOpened(java.awt.event.WindowEvent evt) { | |||||
formWindowOpened(evt); | |||||
} | |||||
}); | |||||
tfNachricht.setToolTipText(""); | |||||
tfNachricht.addMouseListener(new java.awt.event.MouseAdapter() { | |||||
public void mouseClicked(java.awt.event.MouseEvent evt) { | |||||
tfNachrichtMouseClicked(evt); | |||||
} | |||||
}); | |||||
tfNachricht.addActionListener(new java.awt.event.ActionListener() { | |||||
public void actionPerformed(java.awt.event.ActionEvent evt) { | |||||
tfNachrichtActionPerformed(evt); | |||||
} | |||||
}); | |||||
getContentPane().add(tfNachricht, java.awt.BorderLayout.PAGE_END); | |||||
jScrollPane2.setPreferredSize(new java.awt.Dimension(238, 150)); | |||||
txtChat.setColumns(20); | |||||
txtChat.setRows(5); | |||||
txtChat.setText("Chat:"); | |||||
jScrollPane2.setViewportView(txtChat); | |||||
getContentPane().add(jScrollPane2, java.awt.BorderLayout.CENTER); | |||||
pack(); | |||||
}// </editor-fold>//GEN-END:initComponents | |||||
private void BtnClientActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_BtnClientActionPerformed | private void BtnClientActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_BtnClientActionPerformed | ||||
{//GEN-HEADEREND:event_BtnClientActionPerformed | {//GEN-HEADEREND:event_BtnClientActionPerformed | ||||
}); | }); | ||||
} | } | ||||
// Variables declaration - do not modify//GEN-BEGIN:variables | |||||
private javax.swing.JRadioButton BtnClient; | |||||
private javax.swing.JButton BtnConnect; | |||||
private javax.swing.ButtonGroup BtnGrpMode; | |||||
private javax.swing.JRadioButton BtnServer; | |||||
private javax.swing.JDialog dialogChooseMode; | |||||
private javax.swing.JPanel jPanel1; | |||||
private javax.swing.JScrollPane jScrollPane2; | |||||
private javax.swing.JLabel lblMode; | |||||
private javax.swing.JTextField tfNachricht; | |||||
private javax.swing.JTextArea txtChat; | |||||
// End of variables declaration//GEN-END:variables | |||||
// Variables declaration - do not modify//GEN-BEGIN:variables | |||||
private javax.swing.JRadioButton BtnClient; | |||||
private javax.swing.JButton BtnConnect; | |||||
private javax.swing.ButtonGroup BtnGrpMode; | |||||
private javax.swing.JRadioButton BtnServer; | |||||
private javax.swing.JDialog dialogChooseMode; | |||||
private javax.swing.JPanel jPanel1; | |||||
private javax.swing.JScrollPane jScrollPane2; | |||||
private javax.swing.JLabel lblMode; | |||||
private javax.swing.JTextField tfNachricht; | |||||
private javax.swing.JTextArea txtChat; | |||||
// End of variables declaration//GEN-END:variables | |||||
/** | /** | ||||
* @return the BtnClient | * @return the BtnClient |