Archived
0

fix add missions

This commit is contained in:
iMoHax
2015-10-01 17:45:29 +03:00
parent 7fa2aeed64
commit e886762edd
5 changed files with 32 additions and 7 deletions

View File

@@ -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));
}
};
} }

View File

@@ -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));
}
};
} }

View File

@@ -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);
} }

View File

@@ -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){

View File

@@ -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