fix add missions
This commit is contained in:
@@ -134,7 +134,11 @@ public class HelperController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final ChangeListener<? super Number> currentEntryListener = (ov, o, n) -> ViewUtils.doFX(() -> setRouteEntry(n.intValue()));
|
private final ChangeListener<? super Number> currentEntryListener = (ov, o, n) -> ViewUtils.doFX(() -> setRouteEntry(n.intValue()));
|
||||||
private final ChangeListener<RouteModel> routeListener = (ov, o, n) -> ViewUtils.doFX(() -> setRoute(n));
|
private final ChangeListener<RouteModel> routeListener = (ov, o, n) -> {
|
||||||
|
if (n != null){
|
||||||
|
ViewUtils.doFX(() -> setRoute(n));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class RouteTrackController {
|
|||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void addMissions(){
|
private void addMissions(){
|
||||||
int startIndex = route.isLoop() ? 1 : index+1;
|
int startIndex = route.isLoop() ? 0 : index;
|
||||||
route.addAll(startIndex, missionsList.getItems());
|
route.addAll(startIndex, missionsList.getItems());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,6 +68,10 @@ public class RouteTrackController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final ChangeListener<? super Number> currentEntryListener = (ov, o, n) -> ViewUtils.doFX(() -> setIndex(n.intValue()));
|
private final ChangeListener<? super Number> currentEntryListener = (ov, o, n) -> ViewUtils.doFX(() -> setIndex(n.intValue()));
|
||||||
private final ChangeListener<RouteModel> routeListener = (ov, o, n) -> ViewUtils.doFX(() -> setRoute(n));
|
private final ChangeListener<RouteModel> routeListener = (ov, o, n) -> {
|
||||||
|
if (n != null){
|
||||||
|
ViewUtils.doFX(() -> setRoute(n));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import ru.trader.analysis.RouteEntry;
|
|||||||
import ru.trader.core.Order;
|
import ru.trader.core.Order;
|
||||||
import ru.trader.model.support.BindingsHelper;
|
import ru.trader.model.support.BindingsHelper;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class RouteEntryModel {
|
public class RouteEntryModel {
|
||||||
@@ -38,6 +39,10 @@ public class RouteEntryModel {
|
|||||||
missions.add(mission);
|
missions.add(mission);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addAll(Collection<MissionModel> missions){
|
||||||
|
this.missions.addAll(missions);
|
||||||
|
}
|
||||||
|
|
||||||
void remove(MissionModel mission){
|
void remove(MissionModel mission){
|
||||||
missions.remove(mission);
|
missions.remove(mission);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,18 @@ public class RouteModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private RouteModel getCopy(){
|
||||||
|
RouteModel res = new RouteModel(_route, market);
|
||||||
|
res.setCurrentEntry(getCurrentEntry());
|
||||||
|
int size = Math.min(entries.size(), res.entries.size());
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
RouteEntryModel entry = entries.get(i);
|
||||||
|
RouteEntryModel rEntry = res.entries.get(i);
|
||||||
|
rEntry.addAll(entry.missions());
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
public RouteEntryModel get(int index){
|
public RouteEntryModel get(int index){
|
||||||
return entries.get(index);
|
return entries.get(index);
|
||||||
}
|
}
|
||||||
@@ -110,17 +122,17 @@ public class RouteModel {
|
|||||||
Route path = market._getPath(order);
|
Route path = market._getPath(order);
|
||||||
if (path == null) return this;
|
if (path == null) return this;
|
||||||
_route.join(path);
|
_route.join(path);
|
||||||
return new RouteModel(_route, market);
|
return getCopy();
|
||||||
}
|
}
|
||||||
|
|
||||||
public RouteModel add(RouteModel route){
|
public RouteModel add(RouteModel route){
|
||||||
_route.join(route.getRoute());
|
_route.join(route.getRoute());
|
||||||
return new RouteModel(_route, market);
|
return getCopy();
|
||||||
}
|
}
|
||||||
|
|
||||||
public RouteModel remove(OrderModel order) {
|
public RouteModel remove(OrderModel order) {
|
||||||
_route.dropTo(order.getStation().getStation());
|
_route.dropTo(order.getStation().getStation());
|
||||||
return new RouteModel(_route, market);
|
return getCopy();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add(int offset, MissionModel mission){
|
public void add(int offset, MissionModel mission){
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ public class Route implements Comparable<Route> {
|
|||||||
|
|
||||||
public LoopIterator loopIterator(int from){
|
public LoopIterator loopIterator(int from){
|
||||||
return new LoopIterator() {
|
return new LoopIterator() {
|
||||||
private final int size = entries.size() - (isLoop() ? 1 : from);
|
private final int size = entries.size() - (isLoop() ? 1 : 0);
|
||||||
private int i = -1;
|
private int i = -1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user