mirror of
https://github.com/sirjonasxx/G-Earth.git
synced 2024-11-30 12:00:51 +01:00
see inputstring in scheduler instead of hpacket.toString() to support structures
This commit is contained in:
parent
1066f6f3d2
commit
a80ebeb28d
@ -15,7 +15,7 @@ import gearth.protocol.HPacket;
|
|||||||
/**
|
/**
|
||||||
* Created by Jonas on 07/04/18.
|
* Created by Jonas on 07/04/18.
|
||||||
*/
|
*/
|
||||||
public class ScheduleItem implements StringifyAble {
|
public class ScheduleItem {
|
||||||
|
|
||||||
private SimpleIntegerProperty indexProperty;
|
private SimpleIntegerProperty indexProperty;
|
||||||
private SimpleBooleanProperty pausedProperty;
|
private SimpleBooleanProperty pausedProperty;
|
||||||
@ -23,11 +23,13 @@ public class ScheduleItem implements StringifyAble {
|
|||||||
private SimpleObjectProperty<HPacket> packetProperty;
|
private SimpleObjectProperty<HPacket> packetProperty;
|
||||||
private SimpleObjectProperty<HMessage.Direction> destinationProperty;
|
private SimpleObjectProperty<HMessage.Direction> destinationProperty;
|
||||||
|
|
||||||
|
|
||||||
|
public ScheduleItem() {}
|
||||||
public ScheduleItem (int index, boolean paused, Interval delay, HPacket packet, HMessage.Direction destination) {
|
public ScheduleItem (int index, boolean paused, Interval delay, HPacket packet, HMessage.Direction destination) {
|
||||||
construct(index, paused, delay, packet, destination);
|
construct(index, paused, delay, packet, destination);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void construct(int index, boolean paused, Interval delay, HPacket packet, HMessage.Direction destination) {
|
protected void construct(int index, boolean paused, Interval delay, HPacket packet, HMessage.Direction destination) {
|
||||||
this.indexProperty = new SimpleIntegerProperty(index);
|
this.indexProperty = new SimpleIntegerProperty(index);
|
||||||
this.pausedProperty = new SimpleBooleanProperty(paused);
|
this.pausedProperty = new SimpleBooleanProperty(paused);
|
||||||
this.delayProperty = new SimpleObjectProperty<>(delay);
|
this.delayProperty = new SimpleObjectProperty<>(delay);
|
||||||
@ -35,10 +37,6 @@ public class ScheduleItem implements StringifyAble {
|
|||||||
this.destinationProperty = new SimpleObjectProperty<>(destination);
|
this.destinationProperty = new SimpleObjectProperty<>(destination);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ScheduleItem(String stringifyAbleRepresentation) {
|
|
||||||
constructFromString(stringifyAbleRepresentation);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SimpleIntegerProperty getIndexProperty() {
|
public SimpleIntegerProperty getIndexProperty() {
|
||||||
return indexProperty;
|
return indexProperty;
|
||||||
}
|
}
|
||||||
@ -58,34 +56,4 @@ public class ScheduleItem implements StringifyAble {
|
|||||||
public SimpleObjectProperty<HMessage.Direction> getDestinationProperty() {
|
public SimpleObjectProperty<HMessage.Direction> getDestinationProperty() {
|
||||||
return destinationProperty;
|
return destinationProperty;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String stringify() {
|
|
||||||
StringBuilder b = new StringBuilder();
|
|
||||||
b .append(indexProperty.get())
|
|
||||||
.append("\t")
|
|
||||||
.append(pausedProperty.get() ? "true" : "false")
|
|
||||||
.append("\t")
|
|
||||||
.append(delayProperty.get().toString())
|
|
||||||
.append("\t")
|
|
||||||
.append(packetProperty.get().toString())
|
|
||||||
.append("\t")
|
|
||||||
.append(destinationProperty.get().name());
|
|
||||||
return b.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void constructFromString(String str) {
|
|
||||||
String[] parts = str.split("\t");
|
|
||||||
if (parts.length == 5) {
|
|
||||||
int index = Integer.parseInt(parts[0]);
|
|
||||||
boolean paused = parts[1].equals("true");
|
|
||||||
Interval delay = new Interval(parts[2]);
|
|
||||||
HPacket packet = new HPacket(parts[3]);
|
|
||||||
HMessage.Direction direction = parts[4].equals(HMessage.Direction.TOSERVER.name()) ? HMessage.Direction.TOSERVER : HMessage.Direction.TOCLIENT;
|
|
||||||
|
|
||||||
construct(index, paused, delay, packet, direction);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package gearth.ui.scheduler;
|
package gearth.ui.scheduler;
|
||||||
|
|
||||||
|
import gearth.misc.StringifyAble;
|
||||||
import gearth.misc.listenerpattern.Observable;
|
import gearth.misc.listenerpattern.Observable;
|
||||||
import gearth.protocol.HMessage;
|
import gearth.protocol.HMessage;
|
||||||
import gearth.protocol.HPacket;
|
import gearth.protocol.HPacket;
|
||||||
@ -9,14 +10,24 @@ import gearth.services.scheduler.listeners.OnBeingUpdatedListener;
|
|||||||
import gearth.services.scheduler.listeners.OnDeleteListener;
|
import gearth.services.scheduler.listeners.OnDeleteListener;
|
||||||
import gearth.services.scheduler.listeners.OnEditListener;
|
import gearth.services.scheduler.listeners.OnEditListener;
|
||||||
import gearth.services.scheduler.listeners.OnUpdatedListener;
|
import gearth.services.scheduler.listeners.OnUpdatedListener;
|
||||||
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
|
|
||||||
public class InteractableScheduleItem extends ScheduleItem {
|
public class InteractableScheduleItem extends ScheduleItem implements StringifyAble {
|
||||||
public InteractableScheduleItem(int index, boolean paused, Interval delay, HPacket packet, HMessage.Direction destination) {
|
|
||||||
|
private SimpleStringProperty packetAsStringProperty;
|
||||||
|
|
||||||
|
public InteractableScheduleItem(int index, boolean paused, Interval delay, HPacket packet, String inputPacket, HMessage.Direction destination) {
|
||||||
super(index, paused, delay, packet, destination);
|
super(index, paused, delay, packet, destination);
|
||||||
|
this.packetAsStringProperty = new SimpleStringProperty(inputPacket);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InteractableScheduleItem(String stringifyAbleRepresentation) {
|
public InteractableScheduleItem(String stringifyAbleRepresentation) {
|
||||||
super(stringifyAbleRepresentation);
|
constructFromString(stringifyAbleRepresentation);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleStringProperty getPacketAsStringProperty() {
|
||||||
|
return packetAsStringProperty;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Observable<OnDeleteListener> onDeleteObservable = new Observable<>(OnDeleteListener::onDelete);
|
private Observable<OnDeleteListener> onDeleteObservable = new Observable<>(OnDeleteListener::onDelete);
|
||||||
@ -51,4 +62,38 @@ public class InteractableScheduleItem extends ScheduleItem {
|
|||||||
onBeingUpdatedObservable.fireEvent();
|
onBeingUpdatedObservable.fireEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String stringify() {
|
||||||
|
StringBuilder b = new StringBuilder();
|
||||||
|
b .append(getIndexProperty().get())
|
||||||
|
.append("\t")
|
||||||
|
.append(getPausedProperty().get() ? "true" : "false")
|
||||||
|
.append("\t")
|
||||||
|
.append(getDelayProperty().get().toString())
|
||||||
|
.append("\t")
|
||||||
|
.append(getPacketProperty().get().toString())
|
||||||
|
.append("\t")
|
||||||
|
.append(getDestinationProperty().get().name())
|
||||||
|
.append("\t")
|
||||||
|
.append(getPacketAsStringProperty().get());
|
||||||
|
return b.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void constructFromString(String str) {
|
||||||
|
String[] parts = str.split("\t");
|
||||||
|
if (parts.length == 6) {
|
||||||
|
int index = Integer.parseInt(parts[0]);
|
||||||
|
boolean paused = parts[1].equals("true");
|
||||||
|
Interval delay = new Interval(parts[2]);
|
||||||
|
HPacket packet = new HPacket(parts[3]);
|
||||||
|
HMessage.Direction direction = parts[4].equals(HMessage.Direction.TOSERVER.name()) ? HMessage.Direction.TOSERVER : HMessage.Direction.TOCLIENT;
|
||||||
|
String packetAsString = parts[5];
|
||||||
|
|
||||||
|
construct(index, paused, delay, packet, direction);
|
||||||
|
this.packetAsStringProperty = new SimpleStringProperty(packetAsString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,15 +17,15 @@ import gearth.ui.buttons.PauseResumeButton;
|
|||||||
*/
|
*/
|
||||||
public class ScheduleItemContainer extends GridPane {
|
public class ScheduleItemContainer extends GridPane {
|
||||||
|
|
||||||
public static final int[] columnWidths = {10, 39, 16, 18, 15};
|
private static final int[] columnWidths = {10, 39, 16, 18, 15};
|
||||||
InteractableScheduleItem item;
|
private InteractableScheduleItem item;
|
||||||
|
|
||||||
Label indexLabel;
|
private Label indexLabel;
|
||||||
Label packetLabel;
|
private Label packetLabel;
|
||||||
Label delayLabel;
|
private Label delayLabel;
|
||||||
Label destinationLabel;
|
private Label destinationLabel;
|
||||||
|
|
||||||
VBox parent;
|
private VBox parent;
|
||||||
|
|
||||||
ScheduleItemContainer(InteractableScheduleItem item, VBox parent, ScrollPane scrollPane) {
|
ScheduleItemContainer(InteractableScheduleItem item, VBox parent, ScrollPane scrollPane) {
|
||||||
super();
|
super();
|
||||||
@ -51,7 +51,7 @@ public class ScheduleItemContainer extends GridPane {
|
|||||||
}
|
}
|
||||||
|
|
||||||
indexLabel = initNewLabelColumn(item.getIndexProperty().get()+"");
|
indexLabel = initNewLabelColumn(item.getIndexProperty().get()+"");
|
||||||
packetLabel = initNewLabelColumn(item.getPacketProperty().get().toString());
|
packetLabel = initNewLabelColumn(item.getPacketAsStringProperty().get());
|
||||||
delayLabel = initNewLabelColumn(item.getDelayProperty().get()+"");
|
delayLabel = initNewLabelColumn(item.getDelayProperty().get()+"");
|
||||||
destinationLabel = initNewLabelColumn(item.getDestinationProperty().get().name());
|
destinationLabel = initNewLabelColumn(item.getDestinationProperty().get().name());
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ public class ScheduleItemContainer extends GridPane {
|
|||||||
// getChildren().addAll(indexLabel, packetLabel, delayLabel, destinationLabel);
|
// getChildren().addAll(indexLabel, packetLabel, delayLabel, destinationLabel);
|
||||||
|
|
||||||
item.getIndexProperty().addListener(observable -> indexLabel.setText(item.getIndexProperty().get()+""));
|
item.getIndexProperty().addListener(observable -> indexLabel.setText(item.getIndexProperty().get()+""));
|
||||||
item.getPacketProperty().addListener(observable -> packetLabel.setText(item.getPacketProperty().get().toString()));
|
item.getPacketAsStringProperty().addListener(observable -> packetLabel.setText(item.getPacketAsStringProperty().get()));
|
||||||
item.getDelayProperty().addListener(observable -> delayLabel.setText(item.getDelayProperty().get()+""));
|
item.getDelayProperty().addListener(observable -> delayLabel.setText(item.getDelayProperty().get()+""));
|
||||||
item.getDestinationProperty().addListener(observable -> destinationLabel.setText(item.getDestinationProperty().get().name()));
|
item.getDestinationProperty().addListener(observable -> destinationLabel.setText(item.getDestinationProperty().get().name()));
|
||||||
|
|
||||||
|
@ -116,6 +116,7 @@ public class SchedulerController extends SubForm {
|
|||||||
false,
|
false,
|
||||||
new Interval(txt_delay.getText()),
|
new Interval(txt_delay.getText()),
|
||||||
new HPacket(txt_packet.getText()),
|
new HPacket(txt_packet.getText()),
|
||||||
|
txt_packet.getText(),
|
||||||
rb_incoming.isSelected() ? HMessage.Direction.TOCLIENT : HMessage.Direction.TOSERVER);
|
rb_incoming.isSelected() ? HMessage.Direction.TOCLIENT : HMessage.Direction.TOSERVER);
|
||||||
|
|
||||||
addItem(newItem);
|
addItem(newItem);
|
||||||
@ -123,6 +124,7 @@ public class SchedulerController extends SubForm {
|
|||||||
else {
|
else {
|
||||||
|
|
||||||
isBeingEdited.getPacketProperty().set(new HPacket(txt_packet.getText()));
|
isBeingEdited.getPacketProperty().set(new HPacket(txt_packet.getText()));
|
||||||
|
isBeingEdited.getPacketAsStringProperty().set(txt_packet.getText());
|
||||||
isBeingEdited.getDelayProperty().set(new Interval(txt_delay.getText()));
|
isBeingEdited.getDelayProperty().set(new Interval(txt_delay.getText()));
|
||||||
isBeingEdited.getDestinationProperty().set(rb_incoming.isSelected() ? HMessage.Direction.TOCLIENT : HMessage.Direction.TOSERVER);
|
isBeingEdited.getDestinationProperty().set(rb_incoming.isSelected() ? HMessage.Direction.TOCLIENT : HMessage.Direction.TOSERVER);
|
||||||
isBeingEdited.isUpdatedTrigger();
|
isBeingEdited.isUpdatedTrigger();
|
||||||
@ -154,7 +156,7 @@ public class SchedulerController extends SubForm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isBeingEdited != newItem) {
|
if (isBeingEdited != newItem) {
|
||||||
txt_packet.setText(newItem.getPacketProperty().get().toString());
|
txt_packet.setText(newItem.getPacketAsStringProperty().get());
|
||||||
txt_delay.setText(newItem.getDelayProperty().get().toString());
|
txt_delay.setText(newItem.getDelayProperty().get().toString());
|
||||||
rb_incoming.setSelected(newItem.getDestinationProperty().get() == HMessage.Direction.TOCLIENT);
|
rb_incoming.setSelected(newItem.getDestinationProperty().get() == HMessage.Direction.TOCLIENT);
|
||||||
rb_outgoing.setSelected(newItem.getDestinationProperty().get() == HMessage.Direction.TOSERVER);
|
rb_outgoing.setSelected(newItem.getDestinationProperty().get() == HMessage.Direction.TOSERVER);
|
||||||
|
Loading…
Reference in New Issue
Block a user