Skip to content

Commit

Permalink
Laden & Speichern von Urkunden korrigiert
Browse files Browse the repository at this point in the history
  • Loading branch information
Dennis Fabri committed Mar 2, 2022
1 parent 680f173 commit 11819a9
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 34 deletions.
1 change: 1 addition & 0 deletions jauswertung-data/src/main/resources/jauswertung.properties
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,7 @@ Ok = Ok
OldPenalty = Alte Strafe
Open = \u00D6ffnen
OpenFailed = \u00D6ffnen fehlgeschlagen!
OpenFailed.Note = Die Datei "{0}" konnte nicht geöffnet werden.
OpenFailedText = Die Datei "{0}" konnte nicht ge\u00F6ffnet werden
OpenFailedText.Note = Dies hat wahrscheinlich folgende Ursachen:\n- Die Datei existiert nicht.\n- Die Datei ist aktuell mit JAuswertung ge\u00F6ffnet.\n\nWeitere m\u00f6gliche Ursachen sind:\n- Die Datei ist fehlerhaft (\u00dcberpr\u00fcfen Sie in diesem Fall ihre Datentr\u00e4ger auf Defekte).\n- Es handelt sich, um eine Datei, die mit einer alten Version von JAuswertung erstellt wurde.*\n- Sie haben nicht die n\u00f6tigen Berechtigungen, um auf die Datei zuzugreifen.\n\n* Aufgrund des Arbeitsaufwands k\u00F6nnen nicht alle alten Dateien ge\u00F6ffnet werden. Wenn Sie die Datei trotzdem\n\u00F6ffnen wollen, m\u00fcssen Sie sich eine passende \u00E4ltere Version herunterladen.
OptionalChecks = Optionale \u00dcberpr\u00fcfungen
Expand Down
13 changes: 9 additions & 4 deletions jauswertung-io/src/main/java/de/df/jauswertung/io/IOUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
import de.df.jauswertung.daten.regelwerk.StrafenKapitel;
import de.df.jauswertung.daten.regelwerk.StrafenParagraph;
import de.df.jauswertung.daten.regelwerk.Wertungsgruppe;
import de.df.jauswertung.print.graphics.Dimension;
import de.df.jauswertung.print.graphics.Point;
import de.df.jauswertung.util.Utils;
import de.dm.ares.data.Heat;
import de.dm.ares.data.Lane;
Expand All @@ -82,6 +84,8 @@ public final class IOUtils {

private static Logger log = LoggerFactory.getLogger(IOUtils.class);

private static XStream instance = null;

private IOUtils() {
// Hide constructor
}
Expand Down Expand Up @@ -173,12 +177,13 @@ static void toXML(Object o, Writer os) throws IOException {
writeText(xml, os);
}

private static XStream instance = null;

public static XStream getXStream() {
if (instance == null) {
instance = XStreamUtil.getXStream();
setupPermissions(instance);

instance.aliasType("java.awt.Point", Point.class);
instance.aliasType("java.awt.Dimension", Dimension.class);

instance.aliasType("de.dm.auswertung.daten.regelwerk.Startgruppe", Startgruppe.class);
instance.aliasType("de.dm.auswertung.daten.regelwerk.Wertungsgruppe", Wertungsgruppe.class);
Expand Down Expand Up @@ -254,7 +259,7 @@ public static XStream getXStream() {

instance.alias("Mannschaftsmitglied", Mannschaftsmitglied.class);
instance.alias("Mannschaftsmitgliedermeldung", Mannschaftsmitgliedermeldung.class);

instance.useAttributeFor(ASchwimmer.class, "gliederung");
instance.useAttributeFor(ASchwimmer.class, "maennlich");
instance.useAttributeFor(ASchwimmer.class, "bemerkung");
Expand Down Expand Up @@ -284,7 +289,7 @@ public static XStream getXStream() {

private static void setupPermissions(XStream xstream) {
xstream.allowTypes(new Class[] { Heat.class, Lane.class, LaneStatus.class });
xstream.allowTypesByWildcard(new String[] { "de.df.jauswertung.daten.**", "java.util.*", "java.lang.*",
xstream.allowTypesByWildcard(new String[] { "de.df.jauswertung.daten.**", "java.util.*", "java.lang.*", "de.df.jauswertung.print.graphics.*",
"de.df.jutils.print.PageSetting" });
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
* @date 08.01.2005
*/
public final class InputManager {

private static Logger log = LoggerFactory.getLogger(InputManager.class);

private InputManager() {
Expand Down Expand Up @@ -94,7 +94,7 @@ public static AWettkampf ladeWettkampf(String name) {
return null;
}
AWettkampf wk = (AWettkampf) data.get("data.xml");
if ((data.get("logo.png") != null) && (data.get("logo.png") instanceof byte[])) {
if (data.get("logo.png") instanceof byte[]) {
wk.setProperty(PropertyConstants.LOGO, data.get("logo.png"));
}
return wk;
Expand All @@ -107,7 +107,7 @@ public static AWettkampf ladeWettkampf(byte[] daten) {
return null;
}
AWettkampf wk = (AWettkampf) data.get("data.xml");
if ((data.get("logo.png") != null) && (data.get("logo.png") instanceof byte[])) {
if (data.get("logo.png") instanceof byte[]) {
wk.setProperty(PropertyConstants.LOGO, data.get("logo.png"));
}
return wk;
Expand All @@ -129,17 +129,10 @@ public static KampfrichterVerwaltung ladeKampfrichter(String name) {
public static synchronized BugReport ladeBugReport(String name) {
BugReport br = null;
try {
FileInputStream is = new FileInputStream(name);
ObjectInputStream ois = new ObjectInputStream(is);
br = (BugReport) ois.readObject();
ois.close();
is.close();
return br;
} catch (RuntimeException e) {
return (BugReport) ladeObject(name);
} catch (IOException e) {
return (BugReport) ladeObject(name);
} catch (ClassNotFoundException e) {
try (FileInputStream is = new FileInputStream(name); ObjectInputStream ois = new ObjectInputStream(is)) {
return (BugReport) ois.readObject();
}
} catch (RuntimeException | IOException | ClassNotFoundException e) {
return (BugReport) ladeObject(name);
}
}
Expand Down Expand Up @@ -307,4 +300,4 @@ public static synchronized Object unserialize(byte[] data) {
return null;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
import de.df.jutils.print.elements.RulerBorder;

public class JUrkundenEditor<T extends ASchwimmer> extends JFrame {

private static final long serialVersionUID = -523804656941976436L;

private JFrame parent;
Expand All @@ -82,7 +82,7 @@ public class JUrkundenEditor<T extends ASchwimmer> extends JFrame {
JPanel inner;

Point clicked;

JPopupMenu menu;
JMenuItem font;
JMenuItem delete;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package de.df.jauswertung.print.graphics;

import java.io.Serializable;

public class Dimension implements Serializable {

private static final long serialVersionUID = 8771743770783648534L;

public int width;
public int height;

public Dimension(int width, int height) {
this.width = width;
this.height = height;
}

public double getWidth() {
return width;
}

public double getHeight() {
return height;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package de.df.jauswertung.print.graphics;

import java.io.Serializable;

public class Point implements Serializable {

private static final long serialVersionUID = 3380302078457582695L;

public int x;
public int y;

public Point(int x, int y) {
this.x = x;
this.y = y;
}

public double getX() {
return x;
}

public double getY() {
return y;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
package de.df.jauswertung.print.util;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Point;
import java.awt.print.Printable;
import java.util.Hashtable;
import java.util.LinkedList;
Expand All @@ -26,14 +24,16 @@
import de.df.jauswertung.daten.regelwerk.Regelwerk;
import de.df.jauswertung.gui.util.I18n;
import de.df.jauswertung.print.UrkundenPrintable;
import de.df.jauswertung.print.graphics.Dimension;
import de.df.jauswertung.print.graphics.Point;
import de.df.jauswertung.util.SearchUtils;
import de.df.jutils.print.PageSetup;
import de.df.jutils.print.PrintManager;
import de.df.jutils.print.printables.MultiplePrintable;
import de.df.jutils.util.StringTools;

public class GraphUtils {

public static <T extends ASchwimmer> Printable getDummyPrintable(Hashtable<String, Object>[] cells) {
return new UrkundenPrintable<T>(cells);
}
Expand All @@ -45,7 +45,8 @@ public static <T extends ASchwimmer> boolean hasDocuments(AWettkampf<T> wk, bool
return (wk.getProperty(PropertyConstants.URKUNDE) != null);
}

public static <T extends ASchwimmer> Printable getPrintable(AWettkampf<T> wk, boolean[][] selection, boolean einzelwertung) {
public static <T extends ASchwimmer> Printable getPrintable(AWettkampf<T> wk, boolean[][] selection,
boolean einzelwertung) {
if (einzelwertung) {
if (wk.getProperty(PropertyConstants.URKUNDE_EINZELWERTUNG) == null) {
return null;
Expand All @@ -60,14 +61,17 @@ public static <T extends ASchwimmer> Printable getPrintable(AWettkampf<T> wk, bo
for (int x = 0; x < aks.size(); x++) {
for (int y = 0; y < 2; y++) {
if ((selection == null) || (selection[y][x])) {
mp.add(new UrkundenPrintable<T>(wk, SearchUtils.getSchwimmer(wk, wk.getRegelwerk().getAk(x), y == 1), x, y == 1, einzelwertung));
mp.add(new UrkundenPrintable<T>(wk,
SearchUtils.getSchwimmer(wk, wk.getRegelwerk().getAk(x), y == 1), x, y == 1,
einzelwertung));
}
}
}
return mp;
}

public static void addTextfield(mxGraph graph, Point offset, Dimension size, String text, Font f, int align, boolean borders) {
public static void addTextfield(mxGraph graph, Point offset, Dimension size, String text, Font f, int align,
boolean borders) {
if (f == null) {
f = PrintManager.getDefaultFont();
}
Expand Down Expand Up @@ -127,7 +131,8 @@ private static void setAlign(Hashtable<String, Object> style, int align) {
style.put(mxConstants.STYLE_ALIGN, a);
}

public static mxCell addTextfield(mxGraph graph, double x, double y, double width, double height, String text, boolean borders) {
public static mxCell addTextfield(mxGraph graph, double x, double y, double width, double height, String text,
boolean borders) {

if (width < 0) {
x += width;
Expand Down Expand Up @@ -357,21 +362,20 @@ public static String hashtableToStyle(Hashtable<String, Object> style) {
return sb.toString();
}

public static <T extends ASchwimmer> void populateGraph(mxGraph graph, Hashtable<String, Object>[] cells, boolean borders, boolean print) {
public static <T extends ASchwimmer> void populateGraph(mxGraph graph, Hashtable<String, Object>[] cells,
boolean borders, boolean print) {
populateGraph(graph, cells, borders, null, null, print);
}

public static <T extends ASchwimmer> void populateGraph(mxGraph graph, Hashtable<String, Object>[] cells, boolean borders, String[] ids, String[] values,
boolean print) {
public static <T extends ASchwimmer> void populateGraph(mxGraph graph, Hashtable<String, Object>[] cells,
boolean borders, String[] ids, String[] values, boolean print) {
if (cells != null) {
for (Hashtable<String, Object> ht : cells) {
String text = (String) ht.get("text");
if (ids != null) {
for (int x = 0; x < ids.length; x++) {
text = StringTools.replaceCaseInsensitive(text, ids[x], values[x]);
}
// text = StringEscapeUtils.escapeHtml(text);
// text = text.replace("&lt;br&gt;", "<br>");
}
String fname = (String) ht.get("fontname");
int fstyle = Font.PLAIN;
Expand All @@ -392,7 +396,8 @@ public static <T extends ASchwimmer> void populateGraph(mxGraph graph, Hashtable
} catch (RuntimeException re) {
// Nothing to do
}
addTextfield(graph, (Point) ht.get("offset"), (Dimension) ht.get("size"), text, getFont(fname, fstyle, fsize), align, borders);
addTextfield(graph, (Point) ht.get("offset"), (Dimension) ht.get("size"), text,
getFont(fname, fstyle, fsize), align, borders);
}
}
}
Expand Down

0 comments on commit 11819a9

Please sign in to comment.