|
@@ -7,6 +7,8 @@ import { historyService } from "../Service/HistoryService";
|
|
|
import { textService } from "../Service/TextService";
|
|
|
import { roadService } from "../Service/RoadService";
|
|
|
import { roadPointService } from "../Service/RoadPointService";
|
|
|
+import { lineService } from "../Service/LineService";
|
|
|
+import { circleService } from "../Service/CircleService";
|
|
|
|
|
|
export default class History {
|
|
|
constructor(layer) {
|
|
@@ -25,24 +27,11 @@ export default class History {
|
|
|
historyService.addHistoryRecord(change.currentData);
|
|
|
change.saveCurrentInfo();
|
|
|
this.setState();
|
|
|
- const historyState = historyService.getHistoryState();
|
|
|
- // if (historyState.pre) {
|
|
|
- // this.layer.$xui.toolbar.recall = true;
|
|
|
- // }
|
|
|
- // this.layer.$xui.toolbar.recover = false;
|
|
|
-
|
|
|
- const points = dataService.getRoadPoints();
|
|
|
- // if (Object.keys(points).length > 0) {
|
|
|
- // this.layer.$xui.toolbar.clear = true;
|
|
|
- // this.layer.$xui.toolbar.download = true;
|
|
|
- // } else {
|
|
|
- // this.layer.$xui.toolbar.clear = false;
|
|
|
- // this.layer.$xui.toolbar.download = false;
|
|
|
- // }
|
|
|
-
|
|
|
- //给UI发送事件
|
|
|
- this.layer.emit("change");
|
|
|
- return change.currentData;
|
|
|
+ // const historyState = historyService.getHistoryState();
|
|
|
+ // const points = dataService.getRoadPoints();
|
|
|
+ // //给UI发送事件
|
|
|
+ // this.layer.emit("change");
|
|
|
+ // return change.currentData;
|
|
|
}
|
|
|
|
|
|
setState() {
|
|
@@ -101,26 +90,17 @@ export default class History {
|
|
|
goPreState() {
|
|
|
const item = historyService.getHistoryRecord();
|
|
|
if (item) {
|
|
|
- stateService.clearFocusItem();
|
|
|
- stateService.clearEventName();
|
|
|
- //this.layer.uiControl.currentUI = null;
|
|
|
+ stateService.clear();
|
|
|
item.type = "pre";
|
|
|
this.goPreForPoints(item.points);
|
|
|
- this.goPreForRoads(item.roads);
|
|
|
+ this.goPreForLines(item.lines);
|
|
|
+ this.goPreForSimpleLines(item.simpleLines);
|
|
|
+ this.goPreForCircles(item.circles);
|
|
|
this.goPreForTexts(item.texts);
|
|
|
|
|
|
historyService.undoHistoryRecord();
|
|
|
change.saveCurrentInfo();
|
|
|
this.setState();
|
|
|
-
|
|
|
- // const points = dataService.getRoadPoints();
|
|
|
- // if (Object.keys(points).length > 0) {
|
|
|
- // this.layer.$xui.toolbar.clear = true;
|
|
|
- // this.layer.$xui.toolbar.download = true;
|
|
|
- // } else {
|
|
|
- // this.layer.$xui.toolbar.clear = false;
|
|
|
- // this.layer.$xui.toolbar.download = false;
|
|
|
- // }
|
|
|
} else {
|
|
|
console.error("goPreState超出范围!");
|
|
|
}
|
|
@@ -142,23 +122,75 @@ export default class History {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- goPreForRoads(itemForRoads) {
|
|
|
- for (let i = 0; i < itemForRoads.length; ++i) {
|
|
|
- const item = itemForRoads[i];
|
|
|
- if (item.handle == HistoryEvents.AddRoad) {
|
|
|
- dataService.deleteRoad(item.road.id);
|
|
|
- } else if (item.handle == HistoryEvents.DeleteRoad) {
|
|
|
- const preRoad = item.road;
|
|
|
- let newRoad = roadService.create(
|
|
|
- preRoad.start,
|
|
|
- preRoad.end,
|
|
|
- preRoad.id
|
|
|
+ goPreForLines(itemForLines) {
|
|
|
+ for (let i = 0; i < itemForLines.length; ++i) {
|
|
|
+ const item = itemForLines[i];
|
|
|
+ if (item.handle == HistoryEvents.AddLine) {
|
|
|
+ dataService.deleteLine(item.line.id);
|
|
|
+ } else if (item.handle == HistoryEvents.DeleteLine) {
|
|
|
+ const preLine = item.line;
|
|
|
+ let newLine = lineService.createLine(
|
|
|
+ preLine.start,
|
|
|
+ preLine.end,
|
|
|
+ preLine.id
|
|
|
+ );
|
|
|
+ historyUtil.assignLineFromLine(newLine, preLine);
|
|
|
+ } else if (item.handle == HistoryEvents.ModifyLine) {
|
|
|
+ const preLine = item.preLine;
|
|
|
+ let currentLine = dataService.getLine(item.curLine.id);
|
|
|
+ historyUtil.assignLineFromLine(currentLine, preLine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ goPreForSimpleLines(itemForSimpleLines) {
|
|
|
+ for (let i = 0; i < itemForSimpleLines.length; ++i) {
|
|
|
+ const item = itemForSimpleLines[i];
|
|
|
+ if (item.handle == HistoryEvents.AddSimpleLine) {
|
|
|
+ dataService.deleteSimpleLine(item.simpleLine.id);
|
|
|
+ } else if (item.handle == HistoryEvents.DeleteSimpleLine) {
|
|
|
+ const preSimpleLine = item.simpleLine;
|
|
|
+ let newSimpleLine = lineService.createSimpleLine(
|
|
|
+ preSimpleLine.start,
|
|
|
+ preSimpleLine.end,
|
|
|
+ preSimpleLine.category,
|
|
|
+ preSimpleLine.id
|
|
|
+ );
|
|
|
+ historyUtil.assignSimpleLineFromSimpleLine(
|
|
|
+ newSimpleLine,
|
|
|
+ preSimpleLine
|
|
|
+ );
|
|
|
+ } else if (item.handle == HistoryEvents.ModifySimpleLine) {
|
|
|
+ const preSimpleLine = item.preSimpleLine;
|
|
|
+ let currentSimpleLine = dataService.getSimpleLine(
|
|
|
+ item.curSimpleLine.id
|
|
|
+ );
|
|
|
+ historyUtil.assignSimpleLineFromSimpleLine(
|
|
|
+ currentSimpleLine,
|
|
|
+ preSimpleLine
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ goPreForCircles(itemForCircles) {
|
|
|
+ for (let i = 0; i < itemForCircles.length; ++i) {
|
|
|
+ const item = itemForCircles[i];
|
|
|
+ if (item.handle == HistoryEvents.AddCircle) {
|
|
|
+ dataService.deleteCircle(item.circle.id);
|
|
|
+ } else if (item.handle == HistoryEvents.DeleteCircle) {
|
|
|
+ const preCircle = item.circle;
|
|
|
+ let newCircle = lineService.createCircle(
|
|
|
+ preCircle.start,
|
|
|
+ preCircle.end,
|
|
|
+ preCircle.category,
|
|
|
+ preCircle.id
|
|
|
);
|
|
|
- historyUtil.assignRoadFromRoad(newRoad, preRoad);
|
|
|
- } else if (item.handle == HistoryEvents.ModifyRoad) {
|
|
|
- const preRoad = item.preRoad;
|
|
|
- let currentRoad = dataService.getRoad(item.curRoad.id);
|
|
|
- historyUtil.assignRoadFromRoad(currentRoad, preRoad);
|
|
|
+ historyUtil.assignCircleFromCircle(newCircle, preCircle);
|
|
|
+ } else if (item.handle == HistoryEvents.ModifyCircle) {
|
|
|
+ const preCircle = item.preCircle;
|
|
|
+ let currentCircle = dataService.getCircle(item.curCircle.id);
|
|
|
+ historyUtil.assignCircleFromCircle(currentCircle, preCircle);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -195,23 +227,72 @@ export default class History {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- goNextForRoads(itemForRoads) {
|
|
|
- for (let i = 0; i < itemForRoads.length; ++i) {
|
|
|
- const item = itemForRoads[i];
|
|
|
- if (item.handle == HistoryEvents.AddRoad) {
|
|
|
- const preRoad = item.road;
|
|
|
- let newRoad = roadService.create(
|
|
|
- preRoad.start,
|
|
|
- preRoad.end,
|
|
|
- preRoad.id
|
|
|
+ goNextForLines(itemForLines) {
|
|
|
+ for (let i = 0; i < itemForLines.length; ++i) {
|
|
|
+ const item = itemForLines[i];
|
|
|
+ if (item.handle == HistoryEvents.AddLine) {
|
|
|
+ const preLine = item.line;
|
|
|
+ let newLine = lineService.createLine(
|
|
|
+ preLine.start,
|
|
|
+ preLine.end,
|
|
|
+ preLine.id
|
|
|
+ );
|
|
|
+ historyUtil.assignLineFromLine(newLine, preLine);
|
|
|
+ } else if (item.handle == HistoryEvents.DeleteLine) {
|
|
|
+ dataService.deleteLine(item.line.id);
|
|
|
+ } else if (item.handle == HistoryEvents.ModifyLine) {
|
|
|
+ const currentLine = item.curLine;
|
|
|
+ let preLine = dataService.getLine(item.preLine.id);
|
|
|
+ historyUtil.assignLineFromLine(preLine, currentLine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ goNextForSimpleLines(itemForSimpleLines) {
|
|
|
+ for (let i = 0; i < itemForSimpleLines.length; ++i) {
|
|
|
+ const item = itemForSimpleLines[i];
|
|
|
+ if (item.handle == HistoryEvents.AddSimpleLine) {
|
|
|
+ const preSimpleLine = item.simpleLine;
|
|
|
+ let newSimpleLine = lineService.createSimpleLine(
|
|
|
+ preSimpleLine.start,
|
|
|
+ preSimpleLine.end,
|
|
|
+ preSimpleLine.category,
|
|
|
+ preSimpleLine.id
|
|
|
+ );
|
|
|
+ historyUtil.assignSimpleLineFromSimpleLine(
|
|
|
+ newSimpleLine,
|
|
|
+ preSimpleLine
|
|
|
+ );
|
|
|
+ } else if (item.handle == HistoryEvents.DeleteSimpleLine) {
|
|
|
+ dataService.deleteSimpleLine(item.simpleLine.id);
|
|
|
+ } else if (item.handle == HistoryEvents.ModifySimpleLine) {
|
|
|
+ const currentSimpleLine = item.curSimpleLine;
|
|
|
+ let preSimpleLine = dataService.getSimpleLine(item.preSimpleLine.id);
|
|
|
+ historyUtil.assignSimpleLineFromSimpleLine(
|
|
|
+ preSimpleLine,
|
|
|
+ currentSimpleLine
|
|
|
);
|
|
|
- historyUtil.assignRoadFromRoad(newRoad, preRoad);
|
|
|
- } else if (item.handle == HistoryEvents.DeleteRoad) {
|
|
|
- dataService.deleteRoad(item.road.id);
|
|
|
- } else if (item.handle == HistoryEvents.ModifyRoad) {
|
|
|
- const currentRoad = item.curRoad;
|
|
|
- let preRoad = dataService.getRoad(item.preRoad.id);
|
|
|
- historyUtil.assignRoadFromRoad(preRoad, currentRoad);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ goNextForCircles(itemForCircles) {
|
|
|
+ for (let i = 0; i < itemForCircles.length; ++i) {
|
|
|
+ const item = itemForCircles[i];
|
|
|
+ if (item.handle == HistoryEvents.AddCircle) {
|
|
|
+ const preCircle = item.circle;
|
|
|
+ let newCircle = circleService.create(
|
|
|
+ preCircle.center,
|
|
|
+ preCircle.radius,
|
|
|
+ preCircle.id
|
|
|
+ );
|
|
|
+ historyUtil.assignCircleFromCircle(newCircle, preCircle);
|
|
|
+ } else if (item.handle == HistoryEvents.DeleteCircle) {
|
|
|
+ dataService.deleteCircle(item.circle.id);
|
|
|
+ } else if (item.handle == HistoryEvents.ModifyCircle) {
|
|
|
+ const currentCircle = item.curCircle;
|
|
|
+ let preCircle = dataService.getCircle(item.preCircle.id);
|
|
|
+ historyUtil.assignCircleFromCircle(preCircle, currentCircle);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -237,23 +318,15 @@ export default class History {
|
|
|
historyService.redoHistoryRecord();
|
|
|
const item = historyService.getHistoryRecord();
|
|
|
if (item) {
|
|
|
- stateService.clearFocusItem();
|
|
|
- stateService.clearEventName();
|
|
|
- //this.layer.uiControl.currentUI = null;
|
|
|
+ stateService.clear();
|
|
|
+
|
|
|
this.goNextForPoints(item.points);
|
|
|
- this.goNextForRoads(item.roads);
|
|
|
+ this.goNextForLines(item.lines);
|
|
|
+ this.goNextForSimpleLines(item.simpleLines);
|
|
|
+ this.goNextForCircles(item.circles);
|
|
|
this.goNextForTexts(item.texts);
|
|
|
change.saveCurrentInfo();
|
|
|
this.setState();
|
|
|
-
|
|
|
- // const points = dataService.getRoadPoints();
|
|
|
- // if (Object.keys(points).length > 0) {
|
|
|
- // this.layer.$xui.toolbar.clear = true;
|
|
|
- // this.layer.$xui.toolbar.download = true;
|
|
|
- // } else {
|
|
|
- // this.layer.$xui.toolbar.clear = false;
|
|
|
- // this.layer.$xui.toolbar.download = false;
|
|
|
- // }
|
|
|
} else {
|
|
|
historyService.undoHistoryRecord();
|
|
|
console.error("goNextState超出范围!");
|