WIP170310

WIP-PC2
Harald Wolff 2017-03-10 15:11:01 +01:00
parent 4624fa0903
commit beb88f1b8d
24 changed files with 640 additions and 196 deletions

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>missing translations</comment>
<entry key="tooltip.synololog.einstellen">tooltip.synololog.einstellen</entry>
<entry key="tooltip.export.list">tooltip.export.list</entry>
<entry key="Zähler #31">Zähler #31</entry>
<entry key="Zähler #30">Zähler #30</entry>
<entry key="Export Einstellungen...">Export Einstellungen...</entry>
<entry key="Export löschen">Export löschen</entry>
<entry key="Anschlusseinstellungen">Anschlusseinstellungen</entry>
<entry key="tooltip.daten.exportieren">&lt;html&gt;\n&lt;b&gt;Daten exportieren&lt;/b&gt;&lt;br/&gt;\n&lt;br/&gt;\nExport definitionen bearbeiten und ausführen.&lt;br/&gt;\nHiermit können die Aufzeichnungsdaten in Textdateien exportiert werden.&lt;br/&gt;\n&lt;/html&gt;</entry>
<entry key="Gerät">Gerät</entry>
<entry key="tooltip.export.run">tooltip.export.run</entry>
<entry key="Einstellungen">Einstellungen</entry>
<entry key="Zeitstempel">Zeitstempel</entry>
<entry key="Zähler #29">Zähler #29</entry>
<entry key="Zähler #28">Zähler #28</entry>
<entry key="Zähler #27">Zähler #27</entry>
<entry key="Zähler #26">Zähler #26</entry>
<entry key="Zähler #25">Zähler #25</entry>
<entry key="Zähler #24">Zähler #24</entry>
<entry key="Automatiklauf">Automatiklauf</entry>
<entry key="Zähler #23">Zähler #23</entry>
<entry key="Zähler #22">Zähler #22</entry>
<entry key="Zähler #21">Zähler #21</entry>
<entry key="tooltip.export.configuration">tooltip.export.configuration</entry>
<entry key="Zähler #20">Zähler #20</entry>
<entry key="Skripte">Skripte...</entry>
<entry key="HW-Index">HW-Index</entry>
<entry key="Verzeichnis">Verzeichnis</entry>
<entry key="Dateiname">Dateiname</entry>
<entry key="Synololog einstellen">Synololog einstellen</entry>
<entry key="Cancel">abbrechen</entry>
<entry key="Zähler #9">Zähler #9</entry>
<entry key="Zähler #8">Zähler #8</entry>
<entry key="Zähler #7">Zähler #7</entry>
<entry key="Zähler #6">Zähler #6</entry>
<entry key="Zähler #5">Zähler #5</entry>
<entry key="Verbindung">Verbindung</entry>
<entry key="Zähler #4">Zähler #4</entry>
<entry key="Zähler #19">Zähler #19</entry>
<entry key="Zähler #3">Zähler #3</entry>
<entry key="Export hinzufügen">Export hinzufügen</entry>
<entry key="Zähler #18">Zähler #18</entry>
<entry key="Zähler #2">Zähler #2</entry>
<entry key="Auslöser">Auslöser</entry>
<entry key="Zähler #17">Zähler #17</entry>
<entry key="Meldungen">Meldungen</entry>
<entry key="Zähler #1">Zähler #1</entry>
<entry key="Zähler #16">Zähler #16</entry>
<entry key="Zähler #0">Zähler #0</entry>
<entry key="Zähler #15">Zähler #15</entry>
<entry key="Zähler #14">Zähler #14</entry>
<entry key="Zähler #13">Zähler #13</entry>
<entry key="Zähler #12">Zähler #12</entry>
<entry key="Export ausführen">Export ausführen</entry>
<entry key="Zähler #11">Zähler #11</entry>
<entry key="Zähler #10">Zähler #10</entry>
<entry key="Daten exportieren">Daten exportieren</entry>
<entry key="schliessen">schliessen</entry>
<entry key="Differenzieren">Differenzieren</entry>
<entry key="Aufgezeichnete Werte verwalten">Aufgezeichnete Werte verwalten</entry>
<entry key="tooltip.export.add">tooltip.export.add</entry>
<entry key="Autostart">Autostart</entry>
<entry key="tooltip.export.remove">tooltip.export.remove</entry>
<entry key="Benennung">Benennung</entry>
<entry key="Aufzeichnungen verwalten">Aufzeichnungen bearbeiten</entry>
</properties>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>missing translations</comment>
<entry key="Skripte">Scripts...</entry>
<entry key="Cancel">cancel</entry>
</properties>

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>missing translations</comment>
<entry key="von Zähler holen....">von Zähler holen....</entry>
<entry key="SnapShot Speicher zurücksetzen">SnapShot Speicher zurücksetzen</entry>
<entry key="tooltip.synololog.einstellen">tooltip.synololog.einstellen</entry>
<entry key="Operation">Operation</entry>
<entry key="Z">Z</entry>
<entry key="Von Gerät %s geholt am %s">Von Gerät %s geholt am %s</entry>
<entry key="Inkrement">Inkrement</entry>
<entry key="ARITHEMTIK = B + 1">ARITHEMTIK = B + 1</entry>
<entry key="Bezeichnung:">Bezeichnung:</entry>
<entry key="Bedingung">Bedingung</entry>
<entry key="Anschlusseinstellungen">Anschlusseinstellungen</entry>
<entry key="Ausgang">Ausgang</entry>
<entry key="tooltip.daten.exportieren">tooltip.daten.exportieren</entry>
<entry key="Bezeichnung">Bezeichnung</entry>
<entry key="Intervall 1:">Intervall 1:</entry>
<entry key="Signalfenster">Signalfenster</entry>
<entry key="Es konnte kein Skript vom gerät empfangen werden.">Es konnte kein Skript vom gerät empfangen werden.</entry>
<entry key="name">name</entry>
<entry key="Skript bearbeiten">Skript bearbeiten</entry>
<entry key="B">B</entry>
<entry key="A != 0">A != 0</entry>
<entry key="A">A</entry>
<entry key="Signalfilter">Signalfilter</entry>
<entry key="neu...">neu...</entry>
<entry key="Der Selbsttest für Zähler #%d war erfolgreich.">Der Selbsttest für Zähler #%d war erfolgreich.</entry>
<entry key="Wählen Sie die Schnittstelle über die das Skript empfangen werden soll.">Wählen Sie die Schnittstelle über die das Skript empfangen werden soll.</entry>
<entry key="Intervall 1 basiert auf Tageszeit">Intervall 1 basiert auf Tageszeit</entry>
<entry key="Beschreibung:">Beschreibung:</entry>
<entry key="Intervall 0 basiert auf Tageszeit">Intervall 0 basiert auf Tageszeit</entry>
<entry key="Intervall 3 basiert auf Tageszeit">Intervall 3 basiert auf Tageszeit</entry>
<entry key="Intervall 2 basiert auf Tageszeit">Intervall 2 basiert auf Tageszeit</entry>
<entry key="warning.title.selftest">warning.title.selftest</entry>
<entry key="ARITHEMTIK = B">ARITHEMTIK = B</entry>
<entry key="ARITHEMTIK = A">ARITHEMTIK = A</entry>
<entry key="OK">OK</entry>
<entry key="Alle Zähler zurücksetzen">Alle Zähler zurücksetzen</entry>
<entry key="Skripte">Skripte</entry>
<entry key="Wählen Sie die Schnittstelle über die das Skript übertragen werden soll.">Wählen Sie die Schnittstelle über die das Skript übertragen werden soll.</entry>
<entry key="tooltip.intervall">tooltip.intervall</entry>
<entry key="Wollen Sie wirklich alle Zählerstände auf 0 zurücksetzen?">Wollen Sie wirklich alle Zählerstände auf 0 zurücksetzen?</entry>
<entry key="Tageszeitabhängigkeit:">Tageszeitabhängigkeit:</entry>
<entry key="Synololog einstellen">Synololog einstellen</entry>
<entry key="Intervall 0:">Intervall 0:</entry>
<entry key="Invertiert">Invertiert</entry>
<entry key="Intervall 3:">Intervall 3:</entry>
<entry key="ARITHEMTIK = 0">ARITHEMTIK = 0</entry>
<entry key="Löst Snapshot aus">Löst Snapshot aus</entry>
<entry key="bearbeiten...">bearbeiten...</entry>
<entry key="auf Zähler übertragen....">auf Zähler übertragen....</entry>
<entry key="Nur nach Rücksprache mit Support:">Nur nach Rücksprache mit Support:</entry>
<entry key="Verbindung">Verbindung</entry>
<entry key="Passiver Schalter">Passiver Schalter</entry>
<entry key="Meldungen">Meldungen</entry>
<entry key="tooltip.tagesbasierte.intervalle">tooltip.tagesbasierte.intervalle</entry>
<entry key="Kanal">Kanal</entry>
<entry key="warning.selftest">warning.selftest</entry>
<entry key="Daten exportieren">Daten exportieren</entry>
<entry key="Der Selbsttest für Zähler #%d ist fehlgeschlagen.">Der Selbsttest für Zähler #%d ist fehlgeschlagen.</entry>
<entry key="A == 0">A == 0</entry>
<entry key="SnapShot Speicher auf letzten bekannten SnapShot setzen">SnapShot Speicher auf letzten bekannten SnapShot setzen</entry>
<entry key="entfernen">entfernen</entry>
<entry key="Intervall 2:">Intervall 2:</entry>
<entry key="Formeln">Formeln</entry>
<entry key="Schnittstelle wählen...">Schnittstelle wählen...</entry>
<entry key="Alle Zählerstände zurücksetzen">Alle Zählerstände zurücksetzen</entry>
<entry key="Aufzeichnungen verwalten">Aufzeichnungen verwalten</entry>
<entry key="Immer">Immer</entry>
</properties>

View File

@ -3,12 +3,15 @@ package org.hwo.pulscounter;
import static org.hwo.logging.Logging.log; import static org.hwo.logging.Logging.log;
import org.hwo.logging.LogLevel; import org.hwo.logging.LogLevel;
import org.hwo.logging.Logging;
public class Application { public class Application {
public static void main(String[] args) { public static void main(String[] args) {
PulsCounterApplication application = new PulsCounterApplication(args); PulsCounterApplication application = new PulsCounterApplication(args);
Logging.getInstance().setLimitLogLevel(50);
log(LogLevel.INFO,"Application initialized, starting up user interface"); log(LogLevel.INFO,"Application initialized, starting up user interface");
application.start(); application.start();

View File

@ -0,0 +1,237 @@
package org.hwo.pulscounter;
import org.hwo.i18n.Messages;
import org.hwo.pulscounter.device.IDeviceConnector;
import static org.hwo.logging.Logging.*;
import java.util.Arrays;
import static org.hwo.logging.LogLevel.*;
public class DeviceTester extends Thread{
private IDeviceConnector device;
public DeviceTester(IDeviceConnector device){
this.device = device;
}
@Override
public void run() {
prepare();
if (fullTest()){
PulsCounterApplication.getApplication().message(String.format(
Messages.getString("Der Selbsttest für Zähler #%d war erfolgreich."),
device.getDeviceSerial()
));
} else {
PulsCounterApplication.getApplication().message(String.format(
Messages.getString("Der Selbsttest für Zähler #%d ist fehlgeschlagen."),
device.getDeviceSerial()
));
}
unprepare();
}
private void sleep(int ms){
try {
Thread.sleep(ms);
} catch (InterruptedException e){
log(e);
}
}
public boolean fullTest(){
if (!setIncrements(1))
return false;
if (!setPullups(false))
return false;
sleep( 50 );
if (!setOutputs(false))
return false;
sleep( 50 );
if (!setInverts(false))
return false;
sleep( 50 );
if (!setCounters(999999))
return false;
sleep( 50 );
if (!setCounters(0))
return false;
sleep( 50 );
for (int i=0;i<10;i++){
if (!setInverts(true))
return false;
sleep( 50 );
if (!setInverts(false))
return false;
sleep( 50 );
}
if (!checkCounters(10))
return false;
for (int i=0;i<10;i++){
if (!setPullups(true))
return false;
sleep( 50 );
if (!setPullups(false))
return false;
sleep( 50 );
}
if (!checkCounters(20))
return false;
if (!setPullups(true))
return false;
sleep( 50 );
for (int i=0;i<10;i++){
if (!setOutputs(true))
return false;
sleep( 50 );
if (!setOutputs(false))
return false;
sleep( 50 );
}
if (!checkCounters(30))
return false;
if (!setPullups(false))
return false;
return true;
}
public void prepare(){
device.escape(IDeviceConnector.ESC_PREPARE_DEVICETEST, 0);
try {
Thread.sleep(250);
} catch (InterruptedException e){
log(e);
}
}
public void unprepare(){
device.escape(IDeviceConnector.ESC_UNPREPARE_DEVICETEST, 0);
}
public boolean setPullups(boolean on){
int set,act;
set = on ? 0xFFFFFFFF : 0;
device.setPullups(set);
act = device.getPullups();
log(INFO,"setPullups(%s): Result: %s",on,(act==set));
return (set == act);
}
public boolean setOutputs(boolean on){
int set,act;
set = on ? 0xFFFFFFFF : 0;
device.setOutputs(set);
act = device.getOutputs();
log(INFO,"setOutputs(%s): Result: %s",on,(act==set));
return (set == act);
}
public boolean setInverts(boolean on){
int set,act;
set = on ? 0xFFFFFFFF : 0;
device.setInverts(set);
act = device.getInverts();
log(INFO,"setInverts(%s): Result: %s",on,(act==set));
return (set == act);
}
public boolean setCounters(int set){
boolean success = true;
int[] _set = new int[32];
int[] _act = new int[32];
Arrays.fill(_set, set);
device.setCounters(_set);
_act = device.getCounters();
for (int i=0;i<32;i++){
if (_set[i] != _act[i]){
success = false;
log(INFO,"Setting Channel Counter %d failed",i);
}
}
return success;
}
public boolean setIncrements(int set){
boolean success = true;
int[] _set = new int[32];
int[] _act = new int[32];
Arrays.fill(_set, set);
device.setIncrements(_set);
_act = device.getIncrements();
for (int i=0;i<32;i++){
if (_set[i] != _act[i]){
success = false;
log(INFO,"Setting Channel Counter Increment %d failed",i);
}
}
return success;
}
public boolean checkCounters(int check){
boolean success = true;
int[] _check = new int[32];
int[] _act = new int[32];
Arrays.fill(_check, check);
_act = device.getCounters();
for (int i=0;i<32;i++){
if (_check[i] != _act[i]){
success = false;
log(INFO,"Check Channel Counter %d failed (0x%08x != 0x%08x)",i,check,_act[i]);
}
}
return success;
}
}

View File

@ -152,8 +152,8 @@ public class ExportSetting {
int[] simpleSelection = new int[]{ int[] simpleSelection = new int[]{
1, 1,
4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33, 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,
34,35,36,37,38,39,40,41 36,37,38,39,40,41,42,43
}; };

View File

@ -19,8 +19,8 @@ import org.hwo.io.SerialPort;
import org.hwo.io.SerialPortExeption; import org.hwo.io.SerialPortExeption;
import org.hwo.io.NewSerialPort.NewSerialPort; import org.hwo.io.NewSerialPort.NewSerialPort;
import org.hwo.servicelink.ServiceLink; import org.hwo.servicelink.ServiceLink;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.ServiceLinkException;
import org.hwo.servicelink.ServiceLinkRequestFailedException; import org.hwo.servicelink.exceptions.ServiceLinkRequestFailedException;
public class NewPulsCounterDevice implements IPulsCounter { public class NewPulsCounterDevice implements IPulsCounter {
private ServiceLink serviceLink; private ServiceLink serviceLink;

View File

@ -28,6 +28,7 @@ import javax.swing.JFrame;
import org.hsqldb.persist.EventLogInterface; import org.hsqldb.persist.EventLogInterface;
import org.hwo.StringHelper; import org.hwo.StringHelper;
import org.hwo.configuration.ConfigurableObjects; import org.hwo.configuration.ConfigurableObjects;
import org.hwo.i18n.Messages;
import org.hwo.io.NewSerialPort.NewSerialPort; import org.hwo.io.NewSerialPort.NewSerialPort;
import org.hwo.logging.Logging; import org.hwo.logging.Logging;
import org.hwo.platform.Platform; import org.hwo.platform.Platform;
@ -60,6 +61,8 @@ public class PulsCounterApplication implements ServiceLinkListener{
private boolean uiIsFinished; private boolean uiIsFinished;
private boolean shouldSaveConfiguration; private boolean shouldSaveConfiguration;
private boolean dontLoadTranslations;
private List<PulsCounterApplicationListener> private List<PulsCounterApplicationListener>
applicationListeners; applicationListeners;
@ -113,6 +116,10 @@ public class PulsCounterApplication implements ServiceLinkListener{
batchCommands = new ArrayList<>(); batchCommands = new ArrayList<>();
/* Prepare Translation Framework */
Messages i18n = Messages.getInstance();
i18n.setMissingKeysFileName("missing-translation.txt");
/* Prepare for Startup */ /* Prepare for Startup */
loadApplicationConfiguration(); loadApplicationConfiguration();
@ -140,13 +147,20 @@ public class PulsCounterApplication implements ServiceLinkListener{
break; break;
case "--batch-execute": case "--batch-execute":
batchCommands.add( options.next() ); batchCommands.add( options.next() );
break;
case "--no-translation":
dontLoadTranslations = true;
break;
default: default:
log(WARN,"Unknown command line parameter: %s", option); log(WARN,"Unknown command line parameter: %s", option);
} }
} }
if (!dontLoadTranslations){
Messages.loadMessages(PulsCounterApplication.class);
} else {
log(INFO,"Translation text fragments are NOT loaded, due to command line switch (--no-translation)");
}
/* Old stuff... */ /* Old stuff... */
// this.initialize(); // this.initialize();
@ -319,6 +333,11 @@ public class PulsCounterApplication implements ServiceLinkListener{
log(INFO,"Application shutdown..."); log(INFO,"Application shutdown...");
for (IDeviceConnector c: interfaces){
c.shutdown();
}
/* Dispose all left frames */ /* Dispose all left frames */
for (Frame frame: JFrame.getFrames()){ for (Frame frame: JFrame.getFrames()){
frame.setVisible(false); frame.setVisible(false);
@ -362,6 +381,7 @@ public class PulsCounterApplication implements ServiceLinkListener{
database.close(); database.close();
Messages.getInstance().saveMissingStrings();
} }
@ -508,6 +528,7 @@ public class PulsCounterApplication implements ServiceLinkListener{
public void message(String message){ public void message(String message){
log(INFO, message);
if (applicationListeners.size() == 0){ if (applicationListeners.size() == 0){
unseenMessages.addElement(message); unseenMessages.addElement(message);
@ -521,7 +542,7 @@ public class PulsCounterApplication implements ServiceLinkListener{
for (PulsCounterApplicationListener listener: applicationListeners){ for (PulsCounterApplicationListener listener: applicationListeners){
listener.messageArrived(message); listener.messageArrived(message);
} }
}; };
} }

View File

@ -12,7 +12,7 @@ import java.util.UUID;
import org.hwo.csv.CSVRecord; import org.hwo.csv.CSVRecord;
import org.hwo.models.TableMapper.TableColumn; import org.hwo.models.TableMapper.TableColumn;
import org.hwo.servicelink.ServiceLink; import org.hwo.servicelink.ServiceLink;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.ServiceLinkException;
import org.hwo.ui.diagram.annotation.Plot; import org.hwo.ui.diagram.annotation.Plot;
public class SnapShot { public class SnapShot {

View File

@ -112,8 +112,7 @@ public class PulsCounterDatabase {
} catch (SQLException e) { } catch (SQLException e) {
log(ERROR,"SQL Statement failed: %s",query); log(ERROR,"SQL Statement failed: %s",query);
log(ERROR,"Exception: %s", e.toString()); log(e);
e.printStackTrace();
if (e.getCause() != null){ if (e.getCause() != null){
log(ERROR,"Caused-By: %s",e.getCause().toString()); log(ERROR,"Caused-By: %s",e.getCause().toString());
e.getCause().printStackTrace(); e.getCause().printStackTrace();
@ -133,7 +132,7 @@ public class PulsCounterDatabase {
} }
} catch (SQLException e) { } catch (SQLException e) {
log(ERROR,"SQL Statement failed: %s",query); log(ERROR,"SQL Statement failed: %s",query);
log(ERROR,"Exception: %s", e.toString()); log(e);
} }
} }
return null; return null;
@ -148,7 +147,7 @@ public class PulsCounterDatabase {
} }
} catch (SQLException e) { } catch (SQLException e) {
log(ERROR,"SQL Statement failed: %s",query); log(ERROR,"SQL Statement failed: %s",query);
log(ERROR,"Exception: %s", e.toString()); log(e);
} }
} }
return null; return null;

View File

@ -5,10 +5,13 @@ import java.awt.Component;
import org.hwo.pulscounter.SnapShot; import org.hwo.pulscounter.SnapShot;
public interface IDeviceConnector { public interface IDeviceConnector {
public static int ESC_PREPARE_DEVICETEST = 0x00000001;
public static int ESC_UNPREPARE_DEVICETEST = 0x00000002;
public static int ESC_DEBUG_MASK = 0xFFFF0000; public static int ESC_DEBUG_MASK = 0xFFFF0000;
public static int ESC_DEBUG_SCHEDULER_BUG = 0x00010000; public static int ESC_DEBUG_SCHEDULER_BUG = 0x00010000;
public Integer getDeviceSerial(); public Integer getDeviceSerial();
public boolean showConnctionSetup(Component parent); public boolean showConnctionSetup(Component parent);
@ -72,4 +75,6 @@ public interface IDeviceConnector {
public void syncConfigToLive(); public void syncConfigToLive();
public void shutdown();
} }

View File

@ -14,8 +14,7 @@ import org.hwo.pulscounter.SnapShot;
import org.hwo.pulscounter.simplescript.SimpleScript.SimpleScriptElement; import org.hwo.pulscounter.simplescript.SimpleScript.SimpleScriptElement;
import org.hwo.pulscounter.ui.DeviceConfiguration; import org.hwo.pulscounter.ui.DeviceConfiguration;
import org.hwo.servicelink.ServiceLink; import org.hwo.servicelink.ServiceLink;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.*;
import org.hwo.servicelink.ServiceLinkRequestFailedException;
import org.hwo.ui.dialog.SerialPortChooser; import org.hwo.ui.dialog.SerialPortChooser;
import static org.hwo.logging.Logging.*; import static org.hwo.logging.Logging.*;
import static org.hwo.logging.LogLevel.*; import static org.hwo.logging.LogLevel.*;
@ -168,7 +167,7 @@ public class ServiceLinkDeviceConnector implements IDeviceConnector {
log(DEBUG,"%d ScriptElements on Device.",l); log(DEBUG,"%d ScriptElements on Device.",l);
if (l<0) if (l<=0)
return new int[0]; return new int[0];
int[] script = new int[l]; int[] script = new int[l];
@ -785,6 +784,15 @@ public class ServiceLinkDeviceConnector implements IDeviceConnector {
} }
return 0; return 0;
case ESC_PREPARE_DEVICETEST:
log(DEBUG,"Prepare Device for testing.");
serviceLink.setForceSynchronousRequests(true);
return 0;
case ESC_UNPREPARE_DEVICETEST:
log(DEBUG,"Un-Prepare Device after testing.");
serviceLink.setForceSynchronousRequests(false);
return 0;
} }
return 0; return 0;
} }
@ -831,5 +839,10 @@ public class ServiceLinkDeviceConnector implements IDeviceConnector {
} catch (IOException | ServiceLinkException e) { } catch (IOException | ServiceLinkException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
@Override
public void shutdown() {
serviceLink.close();
}
} }

View File

@ -300,4 +300,7 @@ public class SimulatedCounter implements IDeviceConnector {
public void setIncrements(int[] triggers) { public void setIncrements(int[] triggers) {
} }
@Override
public void shutdown() {
}
} }

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.UUID; import java.util.UUID;
import org.hwo.i18n.Messages;
import org.hwo.models.TableMapper.TableColumn; import org.hwo.models.TableMapper.TableColumn;
public class SimpleScript { public class SimpleScript {
@ -181,12 +182,12 @@ public class SimpleScript {
} }
public String getDesc() { public String getDesc() {
return desc; return Messages.getString(desc);
} }
@Override @Override
public String toString() { public String toString() {
return desc; return Messages.getString(desc);
} }
} }
@ -230,12 +231,12 @@ public class SimpleScript {
} }
public String getDesc() { public String getDesc() {
return desc; return Messages.getString(desc);
} }
@Override @Override
public String toString() { public String toString() {
return desc; return Messages.getString(desc);
} }
} }
@ -264,7 +265,7 @@ public class SimpleScript {
this.code = code; this.code = code;
} }
@TableColumn(label="A",order=0) @TableColumn(label="A",order=0,width=120)
public String getHumanA(){ public String getHumanA(){
return SimpleScriptAddress.toString(getA()); return SimpleScriptAddress.toString(getA());
} }
@ -273,7 +274,7 @@ public class SimpleScript {
return code & 0xff; return code & 0xff;
} }
@TableColumn(label="B",order=10) @TableColumn(label="B",order=10,width=120)
public String getHumanB(){ public String getHumanB(){
return SimpleScriptAddress.toString(getB()); return SimpleScriptAddress.toString(getB());
} }
@ -282,7 +283,7 @@ public class SimpleScript {
return (code >> 8) & 0xff; return (code >> 8) & 0xff;
} }
@TableColumn(label="Z",order=90) @TableColumn(label="Z",order=90,width=120)
public String getHumanZ(){ public String getHumanZ(){
return SimpleScriptAddress.toString(getZ()); return SimpleScriptAddress.toString(getZ());
} }
@ -319,7 +320,7 @@ public class SimpleScript {
code |= (operation & 0x1F) << 27; code |= (operation & 0x1F) << 27;
} }
@TableColumn(label="Operation",order=50) @TableColumn(label="Operation",order=50,width=140)
public ScriptOperation getScriptOperation(){ public ScriptOperation getScriptOperation(){
return ScriptOperation.get(getOperation()); return ScriptOperation.get(getOperation());
} }
@ -331,7 +332,7 @@ public class SimpleScript {
} }
} }
@TableColumn(label="Bedingung",order=40) @TableColumn(label="Bedingung",order=40,width=120)
public ScriptCondition getScriptCondition(){ public ScriptCondition getScriptCondition(){
return ScriptCondition.get(getCondition()); return ScriptCondition.get(getCondition());
} }

View File

@ -29,8 +29,7 @@ import org.hwo.io.NewSerialPort.NewSerialPort;
import org.hwo.pulscounter.PulsCounterApplication; import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.SnapShot; import org.hwo.pulscounter.SnapShot;
import org.hwo.servicelink.ServiceLink; import org.hwo.servicelink.ServiceLink;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.*;
import org.hwo.servicelink.ServiceLinkRequestFailedException;
import org.hwo.ui.dialog.SerialPortChooser; import org.hwo.ui.dialog.SerialPortChooser;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;

View File

@ -3,7 +3,7 @@ package org.hwo.pulscounter.ui;
import org.hwo.pulscounter.ExportSetting; import org.hwo.pulscounter.ExportSetting;
import org.hwo.pulscounter.PulsCounterApplication; import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.PulsCounterApplicationListener; import org.hwo.pulscounter.PulsCounterApplicationListener;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.*;
import static org.hwo.logging.Logging.*; import static org.hwo.logging.Logging.*;
import static org.hwo.logging.LogLevel.*; import static org.hwo.logging.LogLevel.*;

View File

@ -12,8 +12,7 @@ import javax.swing.event.ChangeListener;
import org.hwo.pulscounter.PulsCounterApplication; import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.device.IDeviceConnector; import org.hwo.pulscounter.device.IDeviceConnector;
import org.hwo.servicelink.ServiceLink; import org.hwo.servicelink.ServiceLink;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.*;
import org.hwo.servicelink.ServiceLinkRequestFailedException;
import java.awt.GridLayout; import java.awt.GridLayout;
import javax.swing.JTabbedPane; import javax.swing.JTabbedPane;
@ -41,6 +40,7 @@ import javax.swing.JButton;
import org.hwo.bitfields.BitField; import org.hwo.bitfields.BitField;
import org.hwo.bitfields.Field; import org.hwo.bitfields.Field;
import org.hwo.bitfields.ui.BitFieldEditor; import org.hwo.bitfields.ui.BitFieldEditor;
import org.hwo.i18n.Messages;
import org.hwo.models.TableMapper.TableColumn; import org.hwo.models.TableMapper.TableColumn;
import org.hwo.models.TableMapper.TableMapper; import org.hwo.models.TableMapper.TableMapper;
import org.hwo.ui.JTimeSpanEditor; import org.hwo.ui.JTimeSpanEditor;
@ -119,7 +119,7 @@ public class DeviceConfiguration extends JDialog {
panel_2.setLayout(gbl_panel_2); panel_2.setLayout(gbl_panel_2);
bfeIntervall = new BitFieldEditor(); bfeIntervall = new BitFieldEditor();
bfeIntervall.setToolTipText("<html>\n<b>Tagesbasierte Intervalle</b><br/>\n<br/>\nTagesbasierte Intervalle werden immer auf 0:00:00 Uhr des aktuellen Tages bezogen ausgeführt.<br/>\nDies ermöglicht nicht nur eine Regelmäßige Aufzeichnung, sondern erzwingt auch eine Aufzeichnung<br/>\nin einem festgelegten immer gleichen Raster.<br/>\n<br/>\nNicht tageszeitbasierte Intervalle werden mit Bezug auf den 1.1.1970 0:00:00 Uhr ausgeführt.<br/>\nDiese ermöglichen eine stete regelmäßige Aufzeichnung bei der die tageszeit ignoriert wird.\n</html>"); bfeIntervall.setToolTipText(Messages.getString("tooltip.tagesbasierte.intervalle")); //"<html>\n<b>Tagesbasierte Intervalle</b><br/>\n<br/>\nTagesbasierte Intervalle werden immer auf 0:00:00 Uhr des aktuellen Tages bezogen ausgeführt.<br/>\nDies ermöglicht nicht nur eine Regelmäßige Aufzeichnung, sondern erzwingt auch eine Aufzeichnung<br/>\nin einem festgelegten immer gleichen Raster.<br/>\n<br/>\nNicht tageszeitbasierte Intervalle werden mit Bezug auf den 1.1.1970 0:00:00 Uhr ausgeführt.<br/>\nDiese ermöglichen eine stete regelmäßige Aufzeichnung bei der die tageszeit ignoriert wird.\n</html>");
bfeIntervall.addChangeListener(new ChangeListener() { bfeIntervall.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {
int v = bfeIntervall.getIntValue(); int v = bfeIntervall.getIntValue();
@ -130,7 +130,7 @@ public class DeviceConfiguration extends JDialog {
} }
}); });
JLabel lblTageszeitabhngigkeit = new JLabel("Tageszeitabhängigkeit:"); JLabel lblTageszeitabhngigkeit = new JLabel(Messages.getString("Tageszeitabhängigkeit:"));
GridBagConstraints gbc_lblTageszeitabhngigkeit = new GridBagConstraints(); GridBagConstraints gbc_lblTageszeitabhngigkeit = new GridBagConstraints();
gbc_lblTageszeitabhngigkeit.fill = GridBagConstraints.HORIZONTAL; gbc_lblTageszeitabhngigkeit.fill = GridBagConstraints.HORIZONTAL;
gbc_lblTageszeitabhngigkeit.insets = new Insets(0, 0, 5, 5); gbc_lblTageszeitabhngigkeit.insets = new Insets(0, 0, 5, 5);
@ -145,8 +145,8 @@ public class DeviceConfiguration extends JDialog {
gbc_bfeIntervall.gridy = 0; gbc_bfeIntervall.gridy = 0;
panel_2.add(bfeIntervall, gbc_bfeIntervall); panel_2.add(bfeIntervall, gbc_bfeIntervall);
JLabel lblIntervall = new JLabel("Intervall 0:"); JLabel lblIntervall = new JLabel(Messages.getString("Intervall 0:"));
lblIntervall.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); lblIntervall.setToolTipText(Messages.getString("tooltip.intervall")); // "<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>");
GridBagConstraints gbc_lblIntervall = new GridBagConstraints(); GridBagConstraints gbc_lblIntervall = new GridBagConstraints();
gbc_lblIntervall.fill = GridBagConstraints.HORIZONTAL; gbc_lblIntervall.fill = GridBagConstraints.HORIZONTAL;
gbc_lblIntervall.insets = new Insets(0, 0, 5, 5); gbc_lblIntervall.insets = new Insets(0, 0, 5, 5);
@ -155,7 +155,7 @@ public class DeviceConfiguration extends JDialog {
panel_2.add(lblIntervall, gbc_lblIntervall); panel_2.add(lblIntervall, gbc_lblIntervall);
tseI0 = new JTimeSpanEditor(); tseI0 = new JTimeSpanEditor();
tseI0.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); tseI0.setToolTipText(Messages.getString("tooltip.intervall"));
tseI0.addFocusListener(new FocusAdapter() { tseI0.addFocusListener(new FocusAdapter() {
@Override @Override
public void focusLost(FocusEvent e) { public void focusLost(FocusEvent e) {
@ -168,8 +168,8 @@ public class DeviceConfiguration extends JDialog {
gbc_tseI0.gridy = 1; gbc_tseI0.gridy = 1;
panel_2.add(tseI0, gbc_tseI0); panel_2.add(tseI0, gbc_tseI0);
JLabel lblIntervall_1 = new JLabel("Intervall 1:"); JLabel lblIntervall_1 = new JLabel(Messages.getString("Intervall 1:"));
lblIntervall_1.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); lblIntervall_1.setToolTipText(Messages.getString("tooltip.intervall"));
GridBagConstraints gbc_lblIntervall_1 = new GridBagConstraints(); GridBagConstraints gbc_lblIntervall_1 = new GridBagConstraints();
gbc_lblIntervall_1.fill = GridBagConstraints.HORIZONTAL; gbc_lblIntervall_1.fill = GridBagConstraints.HORIZONTAL;
gbc_lblIntervall_1.insets = new Insets(0, 0, 5, 5); gbc_lblIntervall_1.insets = new Insets(0, 0, 5, 5);
@ -178,7 +178,7 @@ public class DeviceConfiguration extends JDialog {
panel_2.add(lblIntervall_1, gbc_lblIntervall_1); panel_2.add(lblIntervall_1, gbc_lblIntervall_1);
tseI1 = new JTimeSpanEditor(); tseI1 = new JTimeSpanEditor();
tseI1.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); tseI1.setToolTipText(Messages.getString("tooltip.intervall"));
tseI1.addFocusListener(new FocusAdapter() { tseI1.addFocusListener(new FocusAdapter() {
@Override @Override
public void focusLost(FocusEvent e) { public void focusLost(FocusEvent e) {
@ -191,8 +191,8 @@ public class DeviceConfiguration extends JDialog {
gbc_tseI1.gridy = 2; gbc_tseI1.gridy = 2;
panel_2.add(tseI1, gbc_tseI1); panel_2.add(tseI1, gbc_tseI1);
JLabel lblIntervall_2 = new JLabel("Intervall 2:"); JLabel lblIntervall_2 = new JLabel(Messages.getString("Intervall 2:"));
lblIntervall_2.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); lblIntervall_2.setToolTipText(Messages.getString("tooltip.intervall"));
GridBagConstraints gbc_lblIntervall_2 = new GridBagConstraints(); GridBagConstraints gbc_lblIntervall_2 = new GridBagConstraints();
gbc_lblIntervall_2.fill = GridBagConstraints.HORIZONTAL; gbc_lblIntervall_2.fill = GridBagConstraints.HORIZONTAL;
gbc_lblIntervall_2.insets = new Insets(0, 0, 5, 5); gbc_lblIntervall_2.insets = new Insets(0, 0, 5, 5);
@ -201,7 +201,7 @@ public class DeviceConfiguration extends JDialog {
panel_2.add(lblIntervall_2, gbc_lblIntervall_2); panel_2.add(lblIntervall_2, gbc_lblIntervall_2);
tseI2 = new JTimeSpanEditor(); tseI2 = new JTimeSpanEditor();
tseI2.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); tseI2.setToolTipText(Messages.getString("tooltip.intervall"));
tseI2.addFocusListener(new FocusAdapter() { tseI2.addFocusListener(new FocusAdapter() {
@Override @Override
public void focusLost(FocusEvent e) { public void focusLost(FocusEvent e) {
@ -214,8 +214,8 @@ public class DeviceConfiguration extends JDialog {
gbc_tseI2.gridy = 3; gbc_tseI2.gridy = 3;
panel_2.add(tseI2, gbc_tseI2); panel_2.add(tseI2, gbc_tseI2);
JLabel lblIntervall_3 = new JLabel("Intervall 3:"); JLabel lblIntervall_3 = new JLabel(Messages.getString("Intervall 3:"));
lblIntervall_3.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); lblIntervall_3.setToolTipText(Messages.getString("tooltip.intervall"));
GridBagConstraints gbc_lblIntervall_3 = new GridBagConstraints(); GridBagConstraints gbc_lblIntervall_3 = new GridBagConstraints();
gbc_lblIntervall_3.fill = GridBagConstraints.HORIZONTAL; gbc_lblIntervall_3.fill = GridBagConstraints.HORIZONTAL;
gbc_lblIntervall_3.insets = new Insets(0, 0, 5, 5); gbc_lblIntervall_3.insets = new Insets(0, 0, 5, 5);
@ -224,7 +224,7 @@ public class DeviceConfiguration extends JDialog {
panel_2.add(lblIntervall_3, gbc_lblIntervall_3); panel_2.add(lblIntervall_3, gbc_lblIntervall_3);
tseI3 = new JTimeSpanEditor(); tseI3 = new JTimeSpanEditor();
tseI3.setToolTipText("<html>\n<b>Intervall</b><br/>\n<br/>\nStellen Sie die gewünschten Intervalllängen ein.<br/>\n<br/>\nEinheiten: <b>Tage, Stunden, Minuten, Sekunden</b>\n</html>"); tseI3.setToolTipText(Messages.getString("tooltip.intervall"));
tseI3.addFocusListener(new FocusAdapter() { tseI3.addFocusListener(new FocusAdapter() {
@Override @Override
public void focusLost(FocusEvent e) { public void focusLost(FocusEvent e) {
@ -268,7 +268,7 @@ public class DeviceConfiguration extends JDialog {
gbl_pManagement.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE}; gbl_pManagement.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
pManagement.setLayout(gbl_pManagement); pManagement.setLayout(gbl_pManagement);
btnAlleZhlerLschen = new JButton("Alle Zähler zurücksetzen"); btnAlleZhlerLschen = new JButton(Messages.getString("Alle Zähler zurücksetzen"));
btnAlleZhlerLschen.addActionListener(new ActionListener() { btnAlleZhlerLschen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
resetCounters(); resetCounters();
@ -281,7 +281,7 @@ public class DeviceConfiguration extends JDialog {
gbc_btnAlleZhlerLschen_1_1.insets = new Insets(0, 0, 5, 0); gbc_btnAlleZhlerLschen_1_1.insets = new Insets(0, 0, 5, 0);
pManagement.add(btnAlleZhlerLschen, gbc_btnAlleZhlerLschen_1_1); pManagement.add(btnAlleZhlerLschen, gbc_btnAlleZhlerLschen_1_1);
JLabel lblNurNachRcksprache = new JLabel("Nur nach Rücksprache mit Support:"); JLabel lblNurNachRcksprache = new JLabel(Messages.getString("Nur nach Rücksprache mit Support:"));
GridBagConstraints gbc_lblNurNachRcksprache = new GridBagConstraints(); GridBagConstraints gbc_lblNurNachRcksprache = new GridBagConstraints();
gbc_lblNurNachRcksprache.fill = GridBagConstraints.HORIZONTAL; gbc_lblNurNachRcksprache.fill = GridBagConstraints.HORIZONTAL;
gbc_lblNurNachRcksprache.insets = new Insets(0, 0, 5, 0); gbc_lblNurNachRcksprache.insets = new Insets(0, 0, 5, 0);
@ -289,14 +289,14 @@ public class DeviceConfiguration extends JDialog {
gbc_lblNurNachRcksprache.gridy = 1; gbc_lblNurNachRcksprache.gridy = 1;
pManagement.add(lblNurNachRcksprache, gbc_lblNurNachRcksprache); pManagement.add(lblNurNachRcksprache, gbc_lblNurNachRcksprache);
btnSnapshotSpeicherZurcksetzen = new JButton("SnapShot Speicher zurücksetzen"); btnSnapshotSpeicherZurcksetzen = new JButton(Messages.getString("SnapShot Speicher zurücksetzen"));
btnSnapshotSpeicherZurcksetzen.addActionListener(new ActionListener() { btnSnapshotSpeicherZurcksetzen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
resetSnapShots(); resetSnapShots();
} }
}); });
btnSnapshotSpeicherAuf = new JButton("SnapShot Speicher auf letzten bekannten SnapShot setzen"); btnSnapshotSpeicherAuf = new JButton(Messages.getString("SnapShot Speicher auf letzten bekannten SnapShot setzen"));
btnSnapshotSpeicherAuf.addActionListener(new ActionListener() { btnSnapshotSpeicherAuf.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
resetSnapShots(true); resetSnapShots(true);
@ -315,14 +315,14 @@ public class DeviceConfiguration extends JDialog {
pManagement.add(btnSnapshotSpeicherZurcksetzen, gbc_btnSnapshotSpeicherZurcksetzen_1_1); pManagement.add(btnSnapshotSpeicherZurcksetzen, gbc_btnSnapshotSpeicherZurcksetzen_1_1);
JButton btnSchliessen = new JButton("abbrechen"); JButton btnSchliessen = new JButton(Messages.getString("Cancel"));
btnSchliessen.addActionListener(new ActionListener() { btnSchliessen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
setVisible(false); setVisible(false);
} }
}); });
JButton btnOk = new JButton("OK"); JButton btnOk = new JButton(Messages.getString("OK"));
btnOk.addActionListener(new ActionListener() { btnOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
writeDevice(); writeDevice();
@ -360,10 +360,10 @@ public class DeviceConfiguration extends JDialog {
BitField bf = new BitField(); BitField bf = new BitField();
bf.clear(); bf.clear();
bf.addField(new Field(bf, 0, 1, "Intervall 0 basiert auf Tageszeit")); bf.addField(new Field(bf, 0, 1, Messages.getString("Intervall 0 basiert auf Tageszeit")));
bf.addField(new Field(bf, 1, 1, "Intervall 1 basiert auf Tageszeit")); bf.addField(new Field(bf, 1, 1, Messages.getString("Intervall 1 basiert auf Tageszeit")));
bf.addField(new Field(bf, 2, 1, "Intervall 2 basiert auf Tageszeit")); bf.addField(new Field(bf, 2, 1, Messages.getString("Intervall 2 basiert auf Tageszeit")));
bf.addField(new Field(bf, 3, 1, "Intervall 3 basiert auf Tageszeit")); bf.addField(new Field(bf, 3, 1, Messages.getString("Intervall 3 basiert auf Tageszeit")));
bfeIntervall.setBitField(bf); bfeIntervall.setBitField(bf);
for (int i=0;i<32;i++){ for (int i=0;i<32;i++){
tmSettings.addRow(new ChannelConfiguration(i)); tmSettings.addRow(new ChannelConfiguration(i));
@ -378,14 +378,20 @@ public class DeviceConfiguration extends JDialog {
} }
private void resetSnapShots(boolean toLastKnown){ private void resetSnapShots(boolean toLastKnown){
if (JOptionPane.showConfirmDialog(null, "<html>Diese Funktion sollte nur auf Aufforderung durch den Support ausgeführt werden.<br/>Soll der Snapshot Index auf dem Gerät wirklich zurückgesetzt werden?</html>", "Snapshot Index zurücksetzen", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ if (JOptionPane.showConfirmDialog(null,
Messages.getString("<html>Diese Funktion sollte nur auf Aufforderung durch den Support ausgeführt werden.<br/>Soll der Snapshot Index auf dem Gerät wirklich zurückgesetzt werden?</html>"),
Messages.getString("Snapshot Index zurücksetzen"),
JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
deviceConnector.reset(toLastKnown ? PulsCounterApplication.getApplication().getDatabase().highestSnapShot(deviceConnector.getDeviceSerial()) : -1); deviceConnector.reset(toLastKnown ? PulsCounterApplication.getApplication().getDatabase().highestSnapShot(deviceConnector.getDeviceSerial()) : -1);
} }
} }
private void resetCounters(){ private void resetCounters(){
if (JOptionPane.showConfirmDialog(null, "Wollen Sie wirklich alle Zählerstände auf 0 zurücksetzen?", "Alle Zählerstände zurücksetzen", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ if (JOptionPane.showConfirmDialog(null,
Messages.getString("Wollen Sie wirklich alle Zählerstände auf 0 zurücksetzen?"),
Messages.getString("Alle Zählerstände zurücksetzen"),
JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
int[] zero = new int[32]; int[] zero = new int[32];
Arrays.fill(zero, 0); Arrays.fill(zero, 0);
deviceConnector.setCounters(zero); deviceConnector.setCounters(zero);

View File

@ -10,11 +10,12 @@ import javax.swing.border.EmptyBorder;
import org.hwo.datetime.DateTime; import org.hwo.datetime.DateTime;
import org.hwo.logging.Logging; import org.hwo.logging.Logging;
import org.hwo.logging.LoggingListener; import org.hwo.logging.LoggingListener;
import org.hwo.pulscounter.DeviceTester;
import org.hwo.pulscounter.PulsCounterApplication; import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.PulsCounterApplicationListener; import org.hwo.pulscounter.PulsCounterApplicationListener;
import org.hwo.pulscounter.device.ServiceLinkDeviceConnector; import org.hwo.pulscounter.device.ServiceLinkDeviceConnector;
import org.hwo.servicelink.ServiceLink; import org.hwo.servicelink.ServiceLink;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.*;
import java.awt.GridBagLayout; import java.awt.GridBagLayout;
import javax.swing.JLabel; import javax.swing.JLabel;
@ -206,7 +207,7 @@ public class DeviceTestFrame extends JFrame implements LoggingListener{
messageListModel = new DefaultListModel<String>(); messageListModel = new DefaultListModel<String>();
lMessages.setModel(messageListModel); lMessages.setModel(messageListModel);
Logging.getInstance().addLoggingListener(this); // Logging.getInstance().addLoggingListener(this);
setVisible(true); setVisible(true);
} }
@ -246,6 +247,7 @@ public class DeviceTestFrame extends JFrame implements LoggingListener{
*/ */
private void startTest(){ private void startTest(){
/*
if (this.deviceChecker != null){ if (this.deviceChecker != null){
while (this.deviceChecker.isAlive()){ while (this.deviceChecker.isAlive()){
try { try {
@ -258,6 +260,20 @@ public class DeviceTestFrame extends JFrame implements LoggingListener{
} }
this.deviceChecker = new DeviceChecker(); this.deviceChecker = new DeviceChecker();
this.deviceChecker.start(); this.deviceChecker.start();
*/
DeviceTester dt = new DeviceTester( (application().getInterfaces().get(0)) );
dt.start();
while (dt.isAlive()){
try {
dt.sleep(100);
} catch (InterruptedException e) {
log(e);
}
}
} }
@Override @Override
@ -265,6 +281,9 @@ public class DeviceTestFrame extends JFrame implements LoggingListener{
if (EventQueue.isDispatchThread()){ if (EventQueue.isDispatchThread()){
int pos = messageListModel.size(); int pos = messageListModel.size();
messageListModel.addElement(message); messageListModel.addElement(message);
if (messageListModel.getSize() > 32)
messageListModel.remove(0);
lMessages.ensureIndexIsVisible(messageListModel.size()-1); lMessages.ensureIndexIsVisible(messageListModel.size()-1);
} else { } else {
final String msg = message; final String msg = message;

View File

@ -9,6 +9,7 @@ import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import org.hwo.i18n.Messages;
import org.hwo.interactiveobjects.ObjectEditorUI; import org.hwo.interactiveobjects.ObjectEditorUI;
import org.hwo.interactiveobjects.ObjectEditorUIHelper; import org.hwo.interactiveobjects.ObjectEditorUIHelper;
import org.hwo.models.TableMapper.TableMapper; import org.hwo.models.TableMapper.TableMapper;
@ -53,7 +54,7 @@ public class ExportFilesFrame extends JDialog {
public ExportFilesFrame() { public ExportFilesFrame() {
setModalityType(ModalityType.APPLICATION_MODAL); setModalityType(ModalityType.APPLICATION_MODAL);
setTitle("Export Einstellungen..."); setTitle(Messages.getString("Export Einstellungen..."));
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 825, 433); setBounds(100, 100, 825, 433);
contentPane = new JPanel(); contentPane = new JPanel();
@ -76,8 +77,8 @@ public class ExportFilesFrame extends JDialog {
gbc_toolBar.gridy = 0; gbc_toolBar.gridy = 0;
contentPane.add(toolBar, gbc_toolBar); contentPane.add(toolBar, gbc_toolBar);
bAdd = new JButton("Export hinzufügen"); bAdd = new JButton(Messages.getString("Export hinzufügen"));
bAdd.setToolTipText("<html>\n<b>Neue Exportkonfiguration hinzufügen</b><br/>\n</html>"); bAdd.setToolTipText(Messages.getString("tooltip.export.add")); //"<html>\n<b>Neue Exportkonfiguration hinzufügen</b><br/>\n</html>");
bAdd.addActionListener(new ActionListener() { bAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
ExportSetting es = new ExportSetting(); ExportSetting es = new ExportSetting();
@ -86,8 +87,8 @@ public class ExportFilesFrame extends JDialog {
}); });
toolBar.add(bAdd); toolBar.add(bAdd);
bEdit = new JButton("Einstellungen"); bEdit = new JButton(Messages.getString("Einstellungen"));
bEdit.setToolTipText("<html>\n<b>Ausgewählte Exportkonfiguration bearbeiten</b>\n</html>"); bEdit.setToolTipText(Messages.getString("tooltip.export.configuration")); // "<html>\n<b>Ausgewählte Exportkonfiguration bearbeiten</b>\n</html>");
bEdit.addActionListener(new ActionListener() { bEdit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
ExportSetting es = (ExportSetting)tmExportSettings.getSelectedRow(); ExportSetting es = (ExportSetting)tmExportSettings.getSelectedRow();
@ -101,8 +102,8 @@ public class ExportFilesFrame extends JDialog {
bEdit.setEnabled(false); bEdit.setEnabled(false);
toolBar.add(bEdit); toolBar.add(bEdit);
bRemove = new JButton("Export löschen"); bRemove = new JButton(Messages.getString(Messages.getString("Export löschen")));
bRemove.setToolTipText("<html>\n<b>Ausgewählte Exportkonfiguration entfernen</b>\n</html>"); bRemove.setToolTipText(Messages.getString("tooltip.export.remove")); // "<html>\n<b>Ausgewählte Exportkonfiguration entfernen</b>\n</html>");
bRemove.addActionListener(new ActionListener() { bRemove.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (selectedExportSetting != null){ if (selectedExportSetting != null){
@ -117,8 +118,8 @@ public class ExportFilesFrame extends JDialog {
separator = new JSeparator(); separator = new JSeparator();
toolBar.add(separator); toolBar.add(separator);
btnExec = new JButton("Export ausführen"); btnExec = new JButton(Messages.getString("Export ausführen"));
btnExec.setToolTipText("<html>\n<b>Ausgewählte Exportkonfiguration jetzt ausführen</b><br/>\n</html>"); btnExec.setToolTipText(Messages.getString("tooltip.export.run")); //"<html>\n<b>Ausgewählte Exportkonfiguration jetzt ausführen</b><br/>\n</html>");
btnExec.setEnabled(false); btnExec.setEnabled(false);
btnExec.addActionListener(new ActionListener() { btnExec.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -127,7 +128,7 @@ public class ExportFilesFrame extends JDialog {
}); });
toolBar.add(btnExec); toolBar.add(btnExec);
btnBatch = new JButton("Automatik"); btnBatch = new JButton(Messages.getString("Automatiklauf"));
btnBatch.addActionListener(new ActionListener() { btnBatch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
doBatchExport(); doBatchExport();
@ -136,7 +137,7 @@ public class ExportFilesFrame extends JDialog {
toolBar.add(btnBatch); toolBar.add(btnBatch);
JScrollPane scrollPane = new JScrollPane(); JScrollPane scrollPane = new JScrollPane();
scrollPane.setToolTipText("<html>\n<b>Exportkonfigurationen</b><br/>\nZeigt eine Übersicht über die aktuell vorhandenen Exportkonfigurationen\n</html>"); scrollPane.setToolTipText(Messages.getString("tooltip.export.list")); // "<html>\n<b>Exportkonfigurationen</b><br/>\nZeigt eine Übersicht über die aktuell vorhandenen Exportkonfigurationen\n</html>");
GridBagConstraints gbc_scrollPane = new GridBagConstraints(); GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.gridwidth = 3; gbc_scrollPane.gridwidth = 3;
gbc_scrollPane.insets = new Insets(0, 0, 5, 0); gbc_scrollPane.insets = new Insets(0, 0, 5, 0);
@ -159,7 +160,7 @@ public class ExportFilesFrame extends JDialog {
tmExportSettings.setRows(PulsCounterApplication.getApplication().getExportSettings()); tmExportSettings.setRows(PulsCounterApplication.getApplication().getExportSettings());
scrollPane.setViewportView(tExportSettings); scrollPane.setViewportView(tExportSettings);
JButton btnSchliessen = new JButton("schliessen"); JButton btnSchliessen = new JButton(Messages.getString("schliessen"));
btnSchliessen.addActionListener(new ActionListener() { btnSchliessen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
setVisible(false); setVisible(false);

View File

@ -14,17 +14,18 @@ import javax.swing.border.TitledBorder;
import org.hwo.Smoother; import org.hwo.Smoother;
import org.hwo.datetime.DateTime; import org.hwo.datetime.DateTime;
import org.hwo.i18n.Messages;
import org.hwo.io.NewSerialPort.NewSerialPort; import org.hwo.io.NewSerialPort.NewSerialPort;
import org.hwo.logging.Logging; import org.hwo.logging.Logging;
import org.hwo.models.FlexibleObjectListModel; import org.hwo.models.FlexibleObjectListModel;
import org.hwo.platform.Platform; import org.hwo.platform.Platform;
import org.hwo.pulscounter.DeviceTester;
import org.hwo.pulscounter.PulsCounterApplication; import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.PulsCounterApplicationListener; import org.hwo.pulscounter.PulsCounterApplicationListener;
import org.hwo.pulscounter.device.IDeviceConnector; import org.hwo.pulscounter.device.IDeviceConnector;
import org.hwo.pulscounter.device.NoDeviceConnectionException; import org.hwo.pulscounter.device.NoDeviceConnectionException;
import org.hwo.pulscounter.device.ServiceLinkDeviceConnector; import org.hwo.pulscounter.device.ServiceLinkDeviceConnector;
import org.hwo.servicelink.ServiceLinkException; import org.hwo.servicelink.exceptions.*;
import org.hwo.servicelink.ServiceLinkRequestFailedException;
import org.hwo.tasklet.Tasklet; import org.hwo.tasklet.Tasklet;
import org.hwo.tasklet.TaskletListener; import org.hwo.tasklet.TaskletListener;
import org.hwo.tasklet.TaskletManager; import org.hwo.tasklet.TaskletManager;
@ -59,6 +60,8 @@ import java.awt.Dialog.ModalityType;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JList; import javax.swing.JList;
import javax.swing.JOptionPane;
import java.awt.Font; import java.awt.Font;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import javax.swing.ToolTipManager; import javax.swing.ToolTipManager;
@ -126,6 +129,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
private JTextArea tfConnectionSettings; private JTextArea tfConnectionSettings;
private JButton btnSkripte; private JButton btnSkripte;
private JButton btnAufzeichnungenVerwalten; private JButton btnAufzeichnungenVerwalten;
private JButton btnSelbsttest;
public static void startGUI(){ public static void startGUI(){
@ -288,8 +292,8 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
toolBar.setFloatable(false); toolBar.setFloatable(false);
frmSynolog.getContentPane().add(toolBar, BorderLayout.NORTH); frmSynolog.getContentPane().add(toolBar, BorderLayout.NORTH);
btnC = new JButton("Synololog einstellen"); btnC = new JButton(Messages.getString("Synololog einstellen"));
btnC.setToolTipText("<html>\n<b>Konfiguration</b><br/>\n<br/>\nKonfiguration des Synololog bearbeiten.\n</html>"); btnC.setToolTipText(Messages.getString("tooltip.synololog.einstellen"));
btnC.addActionListener(new ActionListener() { btnC.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (selectedDeviceInterface != null){ if (selectedDeviceInterface != null){
@ -301,8 +305,8 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
}); });
toolBar.add(btnC); toolBar.add(btnC);
btnDatenExportieren = new JButton("Daten exportieren"); btnDatenExportieren = new JButton(Messages.getString("Daten exportieren"));
btnDatenExportieren.setToolTipText("<html>\n<b>Daten exportieren</b><br/>\n<br/>\nExport definitionen bearbeiten und ausführen.<br/>\nHiermit können die Aufzeichnungsdaten in Textdateien exportiert werden.<br/>\n</html>"); btnDatenExportieren.setToolTipText(Messages.getString("tooltip.daten.exportieren"));
btnDatenExportieren.addActionListener(new ActionListener() { btnDatenExportieren.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
ExportFilesFrame eff = new ExportFilesFrame(); ExportFilesFrame eff = new ExportFilesFrame();
@ -312,7 +316,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
}); });
toolBar.add(btnDatenExportieren); toolBar.add(btnDatenExportieren);
btnSkripte = new JButton("Skripte"); btnSkripte = new JButton(Messages.getString("Skripte"));
btnSkripte.addActionListener(new ActionListener() { btnSkripte.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
SimpleScriptSetup sss = new SimpleScriptSetup(); SimpleScriptSetup sss = new SimpleScriptSetup();
@ -322,7 +326,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
}); });
toolBar.add(btnSkripte); toolBar.add(btnSkripte);
btnAufzeichnungenVerwalten = new JButton("Aufzeichnungen verwalten"); btnAufzeichnungenVerwalten = new JButton(Messages.getString("Aufzeichnungen verwalten"));
btnAufzeichnungenVerwalten.addActionListener(new ActionListener() { btnAufzeichnungenVerwalten.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
SnapshotManager.show(frmSynolog); SnapshotManager.show(frmSynolog);
@ -330,6 +334,14 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
}); });
toolBar.add(btnAufzeichnungenVerwalten); toolBar.add(btnAufzeichnungenVerwalten);
btnSelbsttest = new JButton("Selbsttest");
btnSelbsttest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
deviceTest();
}
});
toolBar.add(btnSelbsttest);
splitter = new JSplitPane(); splitter = new JSplitPane();
splitter.setBorder(null); splitter.setBorder(null);
splitter.setOneTouchExpandable(true); splitter.setOneTouchExpandable(true);
@ -348,7 +360,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
JPanel panel_1 = new JPanel(); JPanel panel_1 = new JPanel();
panel_1.setBackground(Color.WHITE); panel_1.setBackground(Color.WHITE);
panel_1.setBorder(new TitledBorder(null, "Verbindung", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_1.setBorder(new TitledBorder(null, Messages.getString("Verbindung"), TitledBorder.LEADING, TitledBorder.TOP, null, null));
GridBagConstraints gbc_panel_1 = new GridBagConstraints(); GridBagConstraints gbc_panel_1 = new GridBagConstraints();
gbc_panel_1.insets = new Insets(0, 0, 5, 0); gbc_panel_1.insets = new Insets(0, 0, 5, 0);
gbc_panel_1.fill = GridBagConstraints.BOTH; gbc_panel_1.fill = GridBagConstraints.BOTH;
@ -418,7 +430,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
scrollPane_2.setViewportView(lInterfaces); scrollPane_2.setViewportView(lInterfaces);
panel_4 = new JPanel(); panel_4 = new JPanel();
panel_4.setBorder(new TitledBorder(null, "Anschlusseinstellungen", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_4.setBorder(new TitledBorder(null, Messages.getString("Anschlusseinstellungen"), TitledBorder.LEADING, TitledBorder.TOP, null, null));
GridBagConstraints gbc_panel_4 = new GridBagConstraints(); GridBagConstraints gbc_panel_4 = new GridBagConstraints();
gbc_panel_4.gridwidth = 2; gbc_panel_4.gridwidth = 2;
gbc_panel_4.fill = GridBagConstraints.BOTH; gbc_panel_4.fill = GridBagConstraints.BOTH;
@ -443,7 +455,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
JPanel panel_2 = new JPanel(); JPanel panel_2 = new JPanel();
panel_2.setBackground(Color.WHITE); panel_2.setBackground(Color.WHITE);
panel_2.setBorder(new TitledBorder(null, "Meldungen", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_2.setBorder(new TitledBorder(null, Messages.getString("Meldungen"), TitledBorder.LEADING, TitledBorder.TOP, null, null));
GridBagConstraints gbc_panel_2 = new GridBagConstraints(); GridBagConstraints gbc_panel_2 = new GridBagConstraints();
gbc_panel_2.insets = new Insets(0, 0, 5, 0); gbc_panel_2.insets = new Insets(0, 0, 5, 0);
gbc_panel_2.fill = GridBagConstraints.BOTH; gbc_panel_2.fill = GridBagConstraints.BOTH;
@ -495,6 +507,9 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
gbl_pChannels.columnWeights = new double[]{Double.MIN_VALUE}; gbl_pChannels.columnWeights = new double[]{Double.MIN_VALUE};
gbl_pChannels.rowWeights = new double[]{Double.MIN_VALUE}; gbl_pChannels.rowWeights = new double[]{Double.MIN_VALUE};
pChannels.setLayout(gbl_pChannels); pChannels.setLayout(gbl_pChannels);
messageListModel = new DefaultListModel<String>();
lMessages.setModel(messageListModel);
} }
@ -508,12 +523,9 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
/* ToDO: GUI Update */ /* ToDO: GUI Update */
if (selectedDeviceInterface == null){ if (selectedDeviceInterface == null){
bIntfDel.setEnabled(false); bIntfDel.setEnabled(false);
tfConnectionSettings.setText(""); tfConnectionSettings.setText("");
} else { } else {
bIntfDel.setEnabled(true); bIntfDel.setEnabled(true);
// tfConnectionSettings.setText(String.format("<html>%s</html>", selectedDeviceInterface.getConnectionSettingsText().replaceAll("\n", "<br/>")));
tfConnectionSettings.setText(selectedDeviceInterface.getConnectionSettingsText()); tfConnectionSettings.setText(selectedDeviceInterface.getConnectionSettingsText());
} }
@ -587,7 +599,6 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
} catch (NoDeviceConnectionException e){ } catch (NoDeviceConnectionException e){
log("No Device");
} catch (Exception e){ } catch (Exception e){
log(e); log(e);
} }
@ -599,71 +610,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
} }
} }
} }
/*
@Override
public void connectionStateChanged(Boolean connected) {
if (connected){
Integer version = application().getServiceLink().getServiceRegisterCache().getCachedInteger(13, 0, 0x001A);
Integer uptime = application().getServiceLink().getServiceRegisterCache().getCachedInteger(13, 0, 0x0022);
Integer eesize = application().getServiceLink().getServiceRegisterCache().getCachedInteger(13, 0, 0x9000);
if (version != null){
tfConnection.setText(String.format("Version %d.%d.%d", version >> 16, (version >> 8) & 0xff, version & 0xff));
tfConnection.setBackground(Color.GREEN);
tfConnection.setForeground(Color.BLACK);
application().message(String.format("Synololog verbunden (Version %d.%d.%d) (Uptime: %d:%d:%d)", version >> 16, (version >> 8) & 0xff, version & 0xff, uptime / 3600, (uptime / 60)%60, uptime % 60));
application().message(String.format("EEPROM Size: 0x%08x Bytes", eesize));
trimDeviceTimeSlice = application().getServiceLink().getServiceRegisterCache().getCachedInteger(13, 0, 0x1302);
// Trim helper initialisieren
trimTicksOnConnect = null;
application().getSnapshotManager().notify(Notification.FULLSYNC);
} else {
tfConnection.setText("Version unbekannt");
tfConnection.setBackground(Color.YELLOW);
tfConnection.setForeground(Color.BLACK);
application().getServiceLink().close();
}
} else {
tfConnection.setText("Nicht verbunden");
tfConnection.setBackground(Color.RED);
tfConnection.setForeground(Color.WHITE);
trimTicksOnConnect = null;
if (timerReconnect != null){
timerReconnect.schedule(new TimerTask() {
@Override
public void run() {
if (!application().getServiceLink().isOpen()){
try {
application().getServiceLink().open();
} catch (ServiceLinkException e) {
e.printStackTrace();
}
}
}
}, 3000);
}
if (this.connected)
application().message("Verbindung getrennt");
}
this.connected = connected;
}
*/
@Override @Override
public synchronized void messageArrived(String message) { public synchronized void messageArrived(String message) {
@ -864,6 +811,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
private int timeout; private int timeout;
private boolean exit; private boolean exit;
private boolean paused;
private int checkTimeout; private int checkTimeout;
@ -903,15 +851,16 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
try { try {
wait(timeout); wait(timeout);
updateDeviceView(); if (!isPaused()){
updateDeviceView();
if (checkTimeout > 0){
checkTimeout--; if (checkTimeout > 0){
} else { checkTimeout--;
checkTimeout = 10; } else {
application().checkForSnapShots(); checkTimeout = 10;
application().checkForSnapShots();
}
} }
} catch (InterruptedException e){ } catch (InterruptedException e){
} catch (Exception e){ } catch (Exception e){
log(ERROR,"Unexpected Exception in backgroundThread: %s", e.toString()); log(ERROR,"Unexpected Exception in backgroundThread: %s", e.toString());
@ -922,7 +871,25 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
log(INFO,"newMainWindow: backgroundThread: exited"); log(INFO,"newMainWindow: backgroundThread: exited");
} }
}
public synchronized boolean isPaused() {
return paused;
}
public synchronized void setPaused(boolean paused) {
this.paused = paused;
}
}
private void deviceTest(){
if (selectedDeviceInterface != null){
if (JOptionPane.showConfirmDialog(frmSynolog, Messages.getString("warning.title.selftest"),Messages.getString("warning.selftest"), JOptionPane.YES_NO_OPTION)== JOptionPane.YES_OPTION){
DeviceTester deviceTester = new DeviceTester(selectedDeviceInterface);
backgroundThread.setPaused(true);
deviceTester.start();
backgroundThread.setPaused(false);
}
} }
} }

View File

@ -10,6 +10,7 @@ import javax.swing.JPanel;
import javax.swing.JPopupMenu; import javax.swing.JPopupMenu;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import org.hwo.i18n.Messages;
import org.hwo.models.TableMapper.TableColumn; import org.hwo.models.TableMapper.TableColumn;
import org.hwo.models.TableMapper.TableMapper; import org.hwo.models.TableMapper.TableMapper;
import org.hwo.models.TableMapper.TableMapperListener; import org.hwo.models.TableMapper.TableMapperListener;
@ -72,6 +73,7 @@ public class SimpleScriptEditor extends JDialog {
* Create the dialog. * Create the dialog.
*/ */
public SimpleScriptEditor() { public SimpleScriptEditor() {
setTitle(Messages.getString("Skript bearbeiten"));
setModalityType(ModalityType.APPLICATION_MODAL); setModalityType(ModalityType.APPLICATION_MODAL);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 921, 474); setBounds(100, 100, 921, 474);
@ -106,7 +108,7 @@ public class SimpleScriptEditor extends JDialog {
if (e.isPopupTrigger()){ if (e.isPopupTrigger()){
JPopupMenu popupMenu = new JPopupMenu(); JPopupMenu popupMenu = new JPopupMenu();
JMenuItem miAdd = new JMenuItem("1x neu"); JMenuItem miAdd = new JMenuItem(Messages.getString("1x neu"));
miAdd.addActionListener(new ActionListener() { miAdd.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -116,7 +118,7 @@ public class SimpleScriptEditor extends JDialog {
}); });
popupMenu.add(miAdd); popupMenu.add(miAdd);
JMenuItem miAdd5 = new JMenuItem("5x neu"); JMenuItem miAdd5 = new JMenuItem(Messages.getString("5x neu"));
miAdd5.addActionListener(new ActionListener() { miAdd5.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -135,7 +137,7 @@ public class SimpleScriptEditor extends JDialog {
SimpleScriptElement sse = (SimpleScriptElement)mtScriptElements.getTableMapper().getSelectedRow(); SimpleScriptElement sse = (SimpleScriptElement)mtScriptElements.getTableMapper().getSelectedRow();
if (sse != null){ if (sse != null){
JMenuItem miRemove = new JMenuItem("Entfernen"); JMenuItem miRemove = new JMenuItem(Messages.getString("Entfernen"));
miRemove.addActionListener(new ActionListener() { miRemove.addActionListener(new ActionListener() {
@Override @Override
@ -156,7 +158,7 @@ public class SimpleScriptEditor extends JDialog {
}; };
{ {
JLabel lblBezeichnung = new JLabel("Bezeichnung:"); JLabel lblBezeichnung = new JLabel(Messages.getString("Bezeichnung:"));
GridBagConstraints gbc_lblBezeichnung = new GridBagConstraints(); GridBagConstraints gbc_lblBezeichnung = new GridBagConstraints();
gbc_lblBezeichnung.fill = GridBagConstraints.HORIZONTAL; gbc_lblBezeichnung.fill = GridBagConstraints.HORIZONTAL;
gbc_lblBezeichnung.anchor = GridBagConstraints.NORTH; gbc_lblBezeichnung.anchor = GridBagConstraints.NORTH;
@ -177,7 +179,7 @@ public class SimpleScriptEditor extends JDialog {
tfName.setColumns(10); tfName.setColumns(10);
} }
{ {
JLabel lblBescrheibung = new JLabel("Beschreibung:"); JLabel lblBescrheibung = new JLabel(Messages.getString("Beschreibung:"));
GridBagConstraints gbc_lblBescrheibung = new GridBagConstraints(); GridBagConstraints gbc_lblBescrheibung = new GridBagConstraints();
gbc_lblBescrheibung.anchor = GridBagConstraints.NORTH; gbc_lblBescrheibung.anchor = GridBagConstraints.NORTH;
gbc_lblBescrheibung.fill = GridBagConstraints.HORIZONTAL; gbc_lblBescrheibung.fill = GridBagConstraints.HORIZONTAL;
@ -206,6 +208,9 @@ public class SimpleScriptEditor extends JDialog {
contentPanel.add(spElementTable, gbc_spElementTable); contentPanel.add(spElementTable, gbc_spElementTable);
{ {
mtScriptElements = new JMappedTable(SimpleScriptElement.class); mtScriptElements = new JMappedTable(SimpleScriptElement.class);
mtScriptElements.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
mtScriptElements.setEditorEnabled(true);
mtScriptElements.setFillsViewportHeight(true);
mtScriptElements.addMouseListener(popupAdapter); mtScriptElements.addMouseListener(popupAdapter);
spElementTable.setViewportView(mtScriptElements); spElementTable.setViewportView(mtScriptElements);
} }
@ -215,7 +220,7 @@ public class SimpleScriptEditor extends JDialog {
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH); getContentPane().add(buttonPane, BorderLayout.SOUTH);
{ {
JButton okButton = new JButton("OK"); JButton okButton = new JButton(Messages.getString("OK"));
okButton.addActionListener(new ActionListener() { okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
accept(); accept();
@ -226,7 +231,7 @@ public class SimpleScriptEditor extends JDialog {
getRootPane().setDefaultButton(okButton); getRootPane().setDefaultButton(okButton);
} }
{ {
JButton cancelButton = new JButton("Cancel"); JButton cancelButton = new JButton(Messages.getString("Cancel"));
cancelButton.addActionListener(new ActionListener() { cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
cancel(); cancel();
@ -256,6 +261,11 @@ public class SimpleScriptEditor extends JDialog {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override
public void tableRowChanged(TableMapper sender, Object row) {
// TODO Auto-generated method stub
}
}); });
mtScriptElements.getTableMapper().setEditorEnabled(true); mtScriptElements.getTableMapper().setEditorEnabled(true);

View File

@ -9,6 +9,7 @@ import javax.swing.JDialog;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import org.hwo.i18n.Messages;
import org.hwo.pulscounter.simplescript.SimpleScript; import org.hwo.pulscounter.simplescript.SimpleScript;
import org.hwo.pulscounter.simplescript.SimpleScript.ScriptCondition; import org.hwo.pulscounter.simplescript.SimpleScript.ScriptCondition;
import org.hwo.pulscounter.simplescript.SimpleScript.ScriptOperation; import org.hwo.pulscounter.simplescript.SimpleScript.ScriptOperation;
@ -57,7 +58,7 @@ public class SimpleScriptElementEditor extends JDialog {
public SimpleScriptElementEditor() { public SimpleScriptElementEditor() {
setResizable(false); setResizable(false);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setTitle("Skriptelement bearbeiten"); setTitle(Messages.getString("Skriptelement bearbeiten"));
setModalityType(ModalityType.APPLICATION_MODAL); setModalityType(ModalityType.APPLICATION_MODAL);
setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE); setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);
setBounds(100, 100, 519, 350); setBounds(100, 100, 519, 350);
@ -72,7 +73,7 @@ public class SimpleScriptElementEditor extends JDialog {
contentPanel.setLayout(gbl_contentPanel); contentPanel.setLayout(gbl_contentPanel);
{ {
JPanel panel = new JPanel(); JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), "Eingangswert A", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51))); panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), Messages.getString("Eingangswert A"), TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51)));
GridBagConstraints gbc_panel = new GridBagConstraints(); GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 5, 5); gbc_panel.insets = new Insets(0, 0, 5, 5);
gbc_panel.fill = GridBagConstraints.BOTH; gbc_panel.fill = GridBagConstraints.BOTH;
@ -96,7 +97,7 @@ public class SimpleScriptElementEditor extends JDialog {
} }
{ {
JPanel panel = new JPanel(); JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), "Eingangswert B", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51))); panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), Messages.getString("Eingangswert B"), TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51)));
GridBagConstraints gbc_panel = new GridBagConstraints(); GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 5, 0); gbc_panel.insets = new Insets(0, 0, 5, 0);
gbc_panel.fill = GridBagConstraints.BOTH; gbc_panel.fill = GridBagConstraints.BOTH;
@ -120,7 +121,7 @@ public class SimpleScriptElementEditor extends JDialog {
} }
{ {
JPanel panel = new JPanel(); JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), "Bedingung", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51))); panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)),Messages.getString("Bedingung"), TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51)));
GridBagConstraints gbc_panel = new GridBagConstraints(); GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 5, 0); gbc_panel.insets = new Insets(0, 0, 5, 0);
gbc_panel.gridwidth = 2; gbc_panel.gridwidth = 2;
@ -147,7 +148,7 @@ public class SimpleScriptElementEditor extends JDialog {
} }
{ {
JPanel panel = new JPanel(); JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), "Operation", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51))); panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)),Messages.getString("Operation"), TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51)));
GridBagConstraints gbc_panel = new GridBagConstraints(); GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 5, 0); gbc_panel.insets = new Insets(0, 0, 5, 0);
gbc_panel.gridwidth = 2; gbc_panel.gridwidth = 2;
@ -174,7 +175,7 @@ public class SimpleScriptElementEditor extends JDialog {
} }
{ {
JPanel panel = new JPanel(); JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), "Ausgangswert Z", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51))); panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), Messages.getString("Ausgangswert Z"), TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51)));
GridBagConstraints gbc_panel = new GridBagConstraints(); GridBagConstraints gbc_panel = new GridBagConstraints();
gbc_panel.insets = new Insets(0, 0, 0, 5); gbc_panel.insets = new Insets(0, 0, 0, 5);
gbc_panel.fill = GridBagConstraints.BOTH; gbc_panel.fill = GridBagConstraints.BOTH;
@ -201,7 +202,7 @@ public class SimpleScriptElementEditor extends JDialog {
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH); getContentPane().add(buttonPane, BorderLayout.SOUTH);
{ {
JButton okButton = new JButton("OK"); JButton okButton = new JButton(Messages.getString("OK"));
okButton.addActionListener(new ActionListener() { okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
accept(); accept();
@ -212,7 +213,7 @@ public class SimpleScriptElementEditor extends JDialog {
getRootPane().setDefaultButton(okButton); getRootPane().setDefaultButton(okButton);
} }
{ {
JButton cancelButton = new JButton("Cancel"); JButton cancelButton = new JButton(Messages.getString("Cancel"));
cancelButton.addActionListener(new ActionListener() { cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
cancel(); cancel();

View File

@ -25,6 +25,7 @@ import javax.swing.JDialog;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import org.hwo.i18n.Messages;
import org.hwo.models.TableMapper.TableMapper; import org.hwo.models.TableMapper.TableMapper;
import org.hwo.models.TableMapper.TableMapperListener; import org.hwo.models.TableMapper.TableMapperListener;
import org.hwo.pulscounter.PulsCounterApplication; import org.hwo.pulscounter.PulsCounterApplication;
@ -68,6 +69,7 @@ import java.awt.event.ActionListener;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.Dialog.ModalExclusionType; import java.awt.Dialog.ModalExclusionType;
import java.awt.Dialog.ModalityType; import java.awt.Dialog.ModalityType;
import javax.swing.JTable;
public class SimpleScriptSetup extends JDialog { public class SimpleScriptSetup extends JDialog {
@ -82,7 +84,7 @@ public class SimpleScriptSetup extends JDialog {
private JButton btnReceive; private JButton btnReceive;
public SimpleScriptSetup() { public SimpleScriptSetup() {
setTitle("Formeln"); setTitle(Messages.getString("Formeln"));
setModalityType(ModalityType.APPLICATION_MODAL); setModalityType(ModalityType.APPLICATION_MODAL);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 831, 406); setBounds(100, 100, 831, 406);
@ -107,7 +109,7 @@ public class SimpleScriptSetup extends JDialog {
gbc_panel.gridy = 0; gbc_panel.gridy = 0;
contentPane.add(panel, gbc_panel); contentPane.add(panel, gbc_panel);
btnNeu = new JButton("neu..."); btnNeu = new JButton(Messages.getString("neu..."));
btnNeu.addActionListener(new ActionListener() { btnNeu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
scriptTable.getTableMapper().addRow(new SimpleScript()); scriptTable.getTableMapper().addRow(new SimpleScript());
@ -115,7 +117,7 @@ public class SimpleScriptSetup extends JDialog {
}); });
panel.add(btnNeu); panel.add(btnNeu);
btnBearbeiten = new JButton("bearbeiten..."); btnBearbeiten = new JButton(Messages.getString("bearbeiten..."));
btnBearbeiten.addActionListener(new ActionListener() { btnBearbeiten.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
scriptTable.getTableMapper().openEditor(); scriptTable.getTableMapper().openEditor();
@ -124,7 +126,7 @@ public class SimpleScriptSetup extends JDialog {
btnBearbeiten.setEnabled(false); btnBearbeiten.setEnabled(false);
panel.add(btnBearbeiten); panel.add(btnBearbeiten);
btnEntfernen = new JButton("entfernen"); btnEntfernen = new JButton(Messages.getString("entfernen"));
btnEntfernen.setEnabled(false); btnEntfernen.setEnabled(false);
btnEntfernen.addActionListener(new ActionListener() { btnEntfernen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -135,7 +137,7 @@ public class SimpleScriptSetup extends JDialog {
}); });
panel.add(btnEntfernen); panel.add(btnEntfernen);
btnTransmit = new JButton("auf Zähler übertragen...."); btnTransmit = new JButton(Messages.getString("auf Zähler übertragen...."));
btnTransmit.addActionListener(new ActionListener() { btnTransmit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
transmit(); transmit();
@ -144,7 +146,7 @@ public class SimpleScriptSetup extends JDialog {
btnTransmit.setEnabled(false); btnTransmit.setEnabled(false);
panel.add(btnTransmit); panel.add(btnTransmit);
btnReceive = new JButton("von Zähler holen...."); btnReceive = new JButton(Messages.getString("von Zähler holen...."));
btnReceive.addActionListener(new ActionListener() { btnReceive.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
receive(); receive();
@ -161,6 +163,8 @@ public class SimpleScriptSetup extends JDialog {
contentPane.add(scrollPane, gbc_scrollPane); contentPane.add(scrollPane, gbc_scrollPane);
scriptTable = new JMappedTable(SimpleScript.class); scriptTable = new JMappedTable(SimpleScript.class);
scriptTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
scriptTable.setFillsViewportHeight(true);
scrollPane.setViewportView(scriptTable); scrollPane.setViewportView(scriptTable);
JPanel panel_1 = new JPanel(); JPanel panel_1 = new JPanel();
@ -172,7 +176,7 @@ public class SimpleScriptSetup extends JDialog {
gbc_panel_1.gridy = 2; gbc_panel_1.gridy = 2;
contentPane.add(panel_1, gbc_panel_1); contentPane.add(panel_1, gbc_panel_1);
JButton btnSchliessen = new JButton("schliessen"); JButton btnSchliessen = new JButton(Messages.getString("schliessen"));
btnSchliessen.addActionListener(new ActionListener() { btnSchliessen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
setVisible(false); setVisible(false);
@ -225,6 +229,12 @@ public class SimpleScriptSetup extends JDialog {
public void ValueChanged(int row, int column) { public void ValueChanged(int row, int column) {
} }
@Override
public void tableRowChanged(TableMapper sender, Object row) {
// TODO Auto-generated method stub
}
}); });
} }
@ -234,8 +244,8 @@ public class SimpleScriptSetup extends JDialog {
IDeviceConnector connector = JObjectSelector.execute( IDeviceConnector connector = JObjectSelector.execute(
connectors, connectors,
this, this,
"Schnittstelle wählen...", Messages.getString("Schnittstelle wählen..."),
"Wählen Sie die Schnittstelle über die das Skript übertragen werden soll." Messages.getString("Wählen Sie die Schnittstelle über die das Skript übertragen werden soll.")
); );
if (connector != null){ if (connector != null){
@ -250,8 +260,8 @@ public class SimpleScriptSetup extends JDialog {
IDeviceConnector connector = JObjectSelector.execute( IDeviceConnector connector = JObjectSelector.execute(
connectors, connectors,
this, this,
"Schnittstelle wählen...", Messages.getString("Schnittstelle wählen..."),
"Wählen Sie die Schnittstelle über die das Skript empfangen werden soll." Messages.getString("Wählen Sie die Schnittstelle über die das Skript empfangen werden soll.")
); );
if (connector != null){ if (connector != null){
@ -260,11 +270,11 @@ public class SimpleScriptSetup extends JDialog {
int[] scriptElements = connector.getSimpleScript(); int[] scriptElements = connector.getSimpleScript();
if (scriptElements == null){ if (scriptElements == null){
JOptionPane.showMessageDialog(this, "Es konnte kein Skript vom gerät empfangen werden."); JOptionPane.showMessageDialog(this, Messages.getString("Es konnte kein Skript vom gerät empfangen werden."));
} else { } else {
SimpleScript simpleScript = new SimpleScript(); SimpleScript simpleScript = new SimpleScript();
simpleScript.setSimpleScriptElements(scriptElements); simpleScript.setSimpleScriptElements(scriptElements);
simpleScript.setName(String.format("Von Gerät %s geholt am %s", connector.getDeviceSerial(), DateFormat.getDateTimeInstance().format(new Date()))); simpleScript.setName(String.format(Messages.getString("Von Gerät %s geholt am %s"), connector.getDeviceSerial(), DateFormat.getDateTimeInstance().format(new Date())));
scriptTable.getTableMapper().addRow(simpleScript); scriptTable.getTableMapper().addRow(simpleScript);
PulsCounterApplication.getApplication().getDatabase().storeSimpleScript(simpleScript); PulsCounterApplication.getApplication().getDatabase().storeSimpleScript(simpleScript);

View File

@ -19,6 +19,7 @@ import javax.swing.JSplitPane;
import java.awt.GridBagConstraints; import java.awt.GridBagConstraints;
import org.hwo.ObjectTable; import org.hwo.ObjectTable;
import org.hwo.i18n.Messages;
import org.hwo.pulscounter.PulsCounterApplication; import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.SnapShot; import org.hwo.pulscounter.SnapShot;
import org.hwo.ui.JMappedTable; import org.hwo.ui.JMappedTable;
@ -80,7 +81,7 @@ public class SnapshotManager extends JDialog {
* Create the dialog. * Create the dialog.
*/ */
public SnapshotManager() { public SnapshotManager() {
setTitle("Aufgezeichnete Werte verwalten"); setTitle(Messages.getString("Aufgezeichnete Werte verwalten"));
setModal(true); setModal(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setModalityType(ModalityType.APPLICATION_MODAL); setModalityType(ModalityType.APPLICATION_MODAL);
@ -187,7 +188,7 @@ public class SnapshotManager extends JDialog {
gbl_panel_2.rowWeights = new double[]{0.0, Double.MIN_VALUE}; gbl_panel_2.rowWeights = new double[]{0.0, Double.MIN_VALUE};
panel_2.setLayout(gbl_panel_2); panel_2.setLayout(gbl_panel_2);
{ {
cbDifferenzen = new JCheckBox("Differenzieren"); cbDifferenzen = new JCheckBox(Messages.getString("Differenzieren"));
cbDifferenzen.addActionListener(new ActionListener(){ cbDifferenzen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
for (int i=0;i<32;i++){ for (int i=0;i<32;i++){
@ -218,13 +219,13 @@ public class SnapshotManager extends JDialog {
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH); getContentPane().add(buttonPane, BorderLayout.SOUTH);
{ {
JButton cancelButton = new JButton("schliessen"); JButton cancelButton = new JButton(Messages.getString("schliessen"));
cancelButton.addActionListener(new ActionListener() { cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
setVisible(false); setVisible(false);
} }
}); });
cancelButton.setActionCommand("Cancel"); cancelButton.setActionCommand(Messages.getString("Cancel"));
buttonPane.add(cancelButton); buttonPane.add(cancelButton);
} }
} }
@ -284,7 +285,7 @@ public class SnapshotManager extends JDialog {
public void popupTriggered(int x, int y) { public void popupTriggered(int x, int y) {
JPopupMenu popup = new JPopupMenu(); JPopupMenu popup = new JPopupMenu();
JMenuItem mi = new JMenuItem("Nur diesen Graph zeigen"); JMenuItem mi = new JMenuItem(Messages.getString("Nur diesen Graph zeigen"));
mi.addActionListener(new ActionListener() { mi.addActionListener(new ActionListener() {
@Override @Override
@ -300,7 +301,7 @@ public class SnapshotManager extends JDialog {
}); });
popup.add(mi); popup.add(mi);
mi = new JMenuItem("Alle ausser diesem Graph zeigen"); mi = new JMenuItem(Messages.getString("Alle ausser diesem Graph zeigen"));
mi.addActionListener(new ActionListener() { mi.addActionListener(new ActionListener() {
@Override @Override
@ -332,12 +333,12 @@ public class SnapshotManager extends JDialog {
if ((selRows != null)&&(selRows.length>0)){ if ((selRows != null)&&(selRows.length>0)){
JPopupMenu popupMenu = new JPopupMenu(); JPopupMenu popupMenu = new JPopupMenu();
JMenuItem mi = new JMenuItem("Entfernen..."); JMenuItem mi = new JMenuItem(Messages.getString("Entfernen..."));
mi.addActionListener(new ActionListener() { mi.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog(SnapshotManager.this, "Sollen die markierten Snapshots wirklich gelöscht werden?","Aufzeichnungen entfernen",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ if (JOptionPane.showConfirmDialog(SnapshotManager.this, Messages.getString("Sollen die markierten Snapshots wirklich gelöscht werden?"),Messages.getString("Aufzeichnungen entfernen"),JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
for (SnapShot ss: selRows){ for (SnapShot ss: selRows){
mtSnapshots.getTableMapper().removeRow(ss); mtSnapshots.getTableMapper().removeRow(ss);
PulsCounterApplication.getApplication().getDatabase().deleteSnapshot(ss); PulsCounterApplication.getApplication().getDatabase().deleteSnapshot(ss);
@ -353,7 +354,7 @@ public class SnapshotManager extends JDialog {
}); });
popupMenu.add(mi); popupMenu.add(mi);
mi = new JMenuItem("(Ent-)Parken"); mi = new JMenuItem(Messages.getString("(Ent-)Parken"));
mi.addActionListener(new ActionListener() { mi.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {