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<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
|
||||
private void addMissions(){
|
||||
int startIndex = route.isLoop() ? 1 : index+1;
|
||||
int startIndex = route.isLoop() ? 0 : index;
|
||||
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<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.model.support.BindingsHelper;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class RouteEntryModel {
|
||||
@@ -38,6 +39,10 @@ public class RouteEntryModel {
|
||||
missions.add(mission);
|
||||
}
|
||||
|
||||
void addAll(Collection<MissionModel> missions){
|
||||
this.missions.addAll(missions);
|
||||
}
|
||||
|
||||
void remove(MissionModel 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){
|
||||
return entries.get(index);
|
||||
}
|
||||
@@ -110,17 +122,17 @@ public class RouteModel {
|
||||
Route path = market._getPath(order);
|
||||
if (path == null) return this;
|
||||
_route.join(path);
|
||||
return new RouteModel(_route, market);
|
||||
return getCopy();
|
||||
}
|
||||
|
||||
public RouteModel add(RouteModel route){
|
||||
_route.join(route.getRoute());
|
||||
return new RouteModel(_route, market);
|
||||
return getCopy();
|
||||
}
|
||||
|
||||
public RouteModel remove(OrderModel order) {
|
||||
_route.dropTo(order.getStation().getStation());
|
||||
return new RouteModel(_route, market);
|
||||
return getCopy();
|
||||
}
|
||||
|
||||
public void add(int offset, MissionModel mission){
|
||||
|
||||
Reference in New Issue
Block a user