Commit 3eec99da authored by Dmitry.Vikulov's avatar Dmitry.Vikulov

Оптимизация ввода текста в шейп

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@53212 954022d7-b5bf-4e40-9824-e11837661b57
parent 73870feb
...@@ -2448,34 +2448,68 @@ prot["asc_getIndex"] = prot.asc_getIndex; ...@@ -2448,34 +2448,68 @@ prot["asc_getIndex"] = prot.asc_getIndex;
// Manager // Manager
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
function ScrollGraphicObject(ws, type, delta) { function GraphicOption(ws, type, delta) {
this.ws = ws; var _this = this;
this.type = type; _this.ws = ws;
this.delta = delta; // + Down || - Up _this.type = type;
_this.delta = delta; // Scroll offset: + Down || - Up
_this.isScrollType = function() {
return ( (_this.type === c_oAscGraphicOption.ScrollVertical) || (_this.type === c_oAscGraphicOption.ScrollHorizontal) );
}
this.getUpdatedRange = function() { _this.getUpdatedRange = function() {
var vr = this.ws.visibleRange.clone(); var vr = _this.ws.visibleRange.clone();
if ( this.delta === 0 ) if ( _this.isScrollType() && (_this.delta === 0) )
return vr; return vr;
if ( this.type === c_oAscScrollType.Vertical ) { switch (_this.type) {
// Down case c_oAscGraphicOption.ScrollVertical: {
if ( this.delta > 0 ) // Down
vr.r1 = vr.r2 - this.delta; if ( _this.delta > 0 )
// Up vr.r1 = vr.r2 - _this.delta;
else // Up
vr.r2 = vr.r1 - this.delta; else
} vr.r2 = vr.r1 - _this.delta;
else if ( this.type === c_oAscScrollType.Horizontal ) { }
// Right break;
if ( this.delta > 0 )
vr.c1 = vr.c2 - this.delta; case c_oAscGraphicOption.ScrollHorizontal: {
// Left // Right
else if ( _this.delta > 0 )
vr.c2 = vr.c1 - this.delta; vr.c1 = vr.c2 - _this.delta;
// Left
else
vr.c2 = vr.c1 - _this.delta;
}
break;
case c_oAscGraphicOption.AddText: {
if ( _this.ws ) {
var controller = _this.ws.objectRender.controller;
var selectedObjects = controller.selectedObjects;
if ( selectedObjects.length === 1 ) {
var drawingObject = selectedObjects[0].drawingBase;
var checker = _this.ws.objectRender.getBoundsChecker(drawingObject);
var coords = _this.ws.objectRender.getBoundsCheckerCoords(checker);
if ( coords ) {
vr.c1 = coords.from.col;
vr.r1 = coords.from.row;
if ( !_this.ws.cols[coords.to.col + 1] )
_this.ws.expandColsOnScroll(true);
vr.c2 = coords.to.col + 1;
if ( !_this.ws.rows[coords.to.row + 1] )
_this.ws.expandRowsOnScroll(true);
vr.r2 = coords.to.row + 1;
}
}
}
}
break;
} }
return vr; return vr;
} }
} }
...@@ -2551,7 +2585,7 @@ function DrawingObjects() { ...@@ -2551,7 +2585,7 @@ function DrawingObjects() {
var taskLen = aDrawTasks.length; var taskLen = aDrawTasks.length;
if ( taskLen ) { if ( taskLen ) {
var lastTask = aDrawTasks[taskLen - 1]; var lastTask = aDrawTasks[taskLen - 1];
_this.showDrawingObjectsEx(lastTask.params.clearCanvas, lastTask.params.scrollType, lastTask.params.printOptions); _this.showDrawingObjectsEx(lastTask.params.clearCanvas, lastTask.params.graphicOption, lastTask.params.printOptions);
aDrawTasks.splice(0, (taskLen - 1 > 0) ? taskLen - 1 : 1); aDrawTasks.splice(0, (taskLen - 1 > 0) ? taskLen - 1 : 1);
} }
} }
...@@ -3406,7 +3440,7 @@ function DrawingObjects() { ...@@ -3406,7 +3440,7 @@ function DrawingObjects() {
// Drawing objects // Drawing objects
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
_this.showDrawingObjects = function(clearCanvas, scrollType, printOptions) { _this.showDrawingObjects = function(clearCanvas, graphicOption, printOptions) {
var currDate = new Date(); var currDate = new Date();
var currTime = currDate.getTime(); var currTime = currDate.getTime();
...@@ -3414,17 +3448,17 @@ function DrawingObjects() { ...@@ -3414,17 +3448,17 @@ function DrawingObjects() {
var lastTask = aDrawTasks[aDrawTasks.length - 1]; var lastTask = aDrawTasks[aDrawTasks.length - 1];
if ( lastTask.params.scrollType && scrollType && (lastTask.params.scrollType.type === scrollType.type) ) { if ( lastTask.params.graphicOption && lastTask.params.graphicOption.isScrollType() && graphicOption && (lastTask.params.graphicOption.type === graphicOption.type) ) {
lastTask.params.scrollType.delta += scrollType.delta; lastTask.params.graphicOption.delta += graphicOption.delta;
return; return;
} }
if ( (currTime - lastTask.time < 40) ) if ( (currTime - lastTask.time < 40) )
return; return;
} }
aDrawTasks.push({ time: currTime, params: { clearCanvas: clearCanvas, scrollType: scrollType, printOptions: printOptions} }); aDrawTasks.push({ time: currTime, params: { clearCanvas: clearCanvas, graphicOption: graphicOption, printOptions: printOptions} });
} }
_this.showDrawingObjectsEx = function(clearCanvas, scrollType, printOptions) { _this.showDrawingObjectsEx = function(clearCanvas, graphicOption, printOptions) {
/*********** Print Options *************** /*********** Print Options ***************
printOptions : { printOptions : {
...@@ -3446,11 +3480,12 @@ function DrawingObjects() { ...@@ -3446,11 +3480,12 @@ function DrawingObjects() {
worksheet._drawGraphic(); worksheet._drawGraphic();
// Clip // Clip
_this.clipGraphicsCanvas(shapeCtx, scrollType); _this.clipGraphicsCanvas(shapeCtx, graphicOption);
// Area for update // Area for update
if ( scrollType ) { if ( graphicOption ) {
var updatedRect = { x: 0, y: 0, w: 0, h: 0 }; var updatedRect = { x: 0, y: 0, w: 0, h: 0 };
var updatedRange = scrollType.getUpdatedRange(); var updatedRange = graphicOption.getUpdatedRange();
var offsetX = worksheet.cols[worksheet.visibleRange.c1].left - worksheet.cellsLeft; var offsetX = worksheet.cols[worksheet.visibleRange.c1].left - worksheet.cellsLeft;
var offsetY = worksheet.rows[worksheet.visibleRange.r1].top - worksheet.cellsTop; var offsetY = worksheet.rows[worksheet.visibleRange.r1].top - worksheet.cellsTop;
...@@ -3473,7 +3508,7 @@ function DrawingObjects() { ...@@ -3473,7 +3508,7 @@ function DrawingObjects() {
drawingObject.graphicObject.syncAscChart(); drawingObject.graphicObject.syncAscChart();
if ( !printOptions ) { if ( !printOptions ) {
if ( !drawingObject.inVisibleArea(scrollType) ) if ( !drawingObject.inVisibleArea(graphicOption) )
continue; continue;
} }
...@@ -3674,13 +3709,13 @@ function DrawingObjects() { ...@@ -3674,13 +3709,13 @@ function DrawingObjects() {
return metrics; return metrics;
} }
_this.clipGraphicsCanvas = function(canvas, scrollType) { _this.clipGraphicsCanvas = function(canvas, graphicOption) {
if ( canvas instanceof CGraphics ) { if ( canvas instanceof CGraphics ) {
var x, y, w, h; var x, y, w, h;
if ( scrollType ) { if ( graphicOption ) {
var updatedRange = scrollType.getUpdatedRange(); var updatedRange = graphicOption.getUpdatedRange();
var offsetX = worksheet.cols[worksheet.visibleRange.c1].left - worksheet.cellsLeft; var offsetX = worksheet.cols[worksheet.visibleRange.c1].left - worksheet.cellsLeft;
var offsetY = worksheet.rows[worksheet.visibleRange.r1].top - worksheet.cellsTop; var offsetY = worksheet.rows[worksheet.visibleRange.r1].top - worksheet.cellsTop;
......
...@@ -216,9 +216,10 @@ var c_oAscSelectionType = { ...@@ -216,9 +216,10 @@ var c_oAscSelectionType = {
RangeChartText : 9 RangeChartText : 9
}; };
var c_oAscScrollType = { var c_oAscGraphicOption = {
Vertical : 1, ScrollVertical : 1,
Horizontal : 2 ScrollHorizontal : 2,
AddText : 3
}; };
var c_oAscLegendMarkerType = { var c_oAscLegendMarkerType = {
......
...@@ -969,6 +969,7 @@ function handleNullStateCursorType(drawingObjectsController, drawingObjects, e, ...@@ -969,6 +969,7 @@ function handleNullStateCursorType(drawingObjectsController, drawingObjects, e,
function NullState(drawingObjectsController, drawingObjects) function NullState(drawingObjectsController, drawingObjects)
{ {
var _this = this;
this.id = STATES_ID_NULL; this.id = STATES_ID_NULL;
this.drawingObjectsController = drawingObjectsController; this.drawingObjectsController = drawingObjectsController;
this.drawingObjects = drawingObjects; this.drawingObjects = drawingObjects;
...@@ -1098,7 +1099,7 @@ function NullState(drawingObjectsController, drawingObjects) ...@@ -1098,7 +1099,7 @@ function NullState(drawingObjectsController, drawingObjects)
{ {
History.Create_NewPoint(); History.Create_NewPoint();
text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode))); text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode)));
drawingObjects.showDrawingObjects(true); drawingObjects.showDrawingObjects(false, new GraphicOption(_this.drawingObjects.getWorksheet(), c_oAscGraphicOption.AddText, 0));
text_object.updateSelectionState(drawingObjects.drawingDocument); text_object.updateSelectionState(drawingObjects.drawingDocument);
drawingObjects.controller.changeCurrentState(new TextAddState(drawingObjects.controller, drawingObjects, text_object)); drawingObjects.controller.changeCurrentState(new TextAddState(drawingObjects.controller, drawingObjects, text_object));
} }
...@@ -1457,6 +1458,7 @@ function MoveInternalChartObjectState(drawingObjectsController, drawingObjects, ...@@ -1457,6 +1458,7 @@ function MoveInternalChartObjectState(drawingObjectsController, drawingObjects,
function ChartState(drawingObjectsController, drawingObjects, chart) function ChartState(drawingObjectsController, drawingObjects, chart)
{ {
var _this = this;
this.id = STATES_ID_CHART; this.id = STATES_ID_CHART;
this.drawingObjectsController = drawingObjectsController; this.drawingObjectsController = drawingObjectsController;
this.drawingObjects = drawingObjects; this.drawingObjects = drawingObjects;
...@@ -1501,7 +1503,7 @@ function ChartState(drawingObjectsController, drawingObjects, chart) ...@@ -1501,7 +1503,7 @@ function ChartState(drawingObjectsController, drawingObjects, chart)
History.Create_NewPoint(); History.Create_NewPoint();
drawingObjects.controller.changeCurrentState(new ChartTextAdd(drawingObjects.controller, drawingObjects, chart, text_object)); drawingObjects.controller.changeCurrentState(new ChartTextAdd(drawingObjects.controller, drawingObjects, chart, text_object));
text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode))); text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode)));
drawingObjects.showDrawingObjects(true); drawingObjects.showDrawingObjects(false, new GraphicOption(_this.drawingObjects.getWorksheet(), c_oAscGraphicOption.AddText, 0));
drawingObjects.controller.updateSelectionState(drawingObjects.drawingDocument); drawingObjects.controller.updateSelectionState(drawingObjects.drawingDocument);
drawingObjects.OnUpdateOverlay(); drawingObjects.OnUpdateOverlay();
} }
...@@ -1674,6 +1676,7 @@ function ChartState(drawingObjectsController, drawingObjects, chart) ...@@ -1674,6 +1676,7 @@ function ChartState(drawingObjectsController, drawingObjects, chart)
function ChartTextAdd(drawingObjectsController, drawingObjects, chart, textObject) function ChartTextAdd(drawingObjectsController, drawingObjects, chart, textObject)
{ {
var _this = this;
this.id = STATES_ID_CHART_TEXT_ADD; this.id = STATES_ID_CHART_TEXT_ADD;
this.drawingObjectsController = drawingObjectsController; this.drawingObjectsController = drawingObjectsController;
this.drawingObjects = drawingObjects; this.drawingObjects = drawingObjects;
...@@ -1729,7 +1732,7 @@ function ChartTextAdd(drawingObjectsController, drawingObjects, chart, textObjec ...@@ -1729,7 +1732,7 @@ function ChartTextAdd(drawingObjectsController, drawingObjects, chart, textObjec
{ {
History.Create_NewPoint(); History.Create_NewPoint();
text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode))); text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode)));
drawingObjects.showDrawingObjects(true); drawingObjects.showDrawingObjects(false, new GraphicOption(_this.drawingObjects.getWorksheet(), c_oAscGraphicOption.AddText, 0));
text_object.updateSelectionState(drawingObjects.drawingDocument); text_object.updateSelectionState(drawingObjects.drawingDocument);
} }
}; };
...@@ -1918,6 +1921,7 @@ function ChartTextAdd(drawingObjectsController, drawingObjects, chart, textObjec ...@@ -1918,6 +1921,7 @@ function ChartTextAdd(drawingObjectsController, drawingObjects, chart, textObjec
function TextAddState(drawingObjectsController, drawingObjects, textObject) function TextAddState(drawingObjectsController, drawingObjects, textObject)
{ {
var _this = this;
this.id = STATES_ID_TEXT_ADD; this.id = STATES_ID_TEXT_ADD;
this.drawingObjectsController = drawingObjectsController; this.drawingObjectsController = drawingObjectsController;
this.drawingObjects = drawingObjects; this.drawingObjects = drawingObjects;
...@@ -1979,7 +1983,7 @@ function TextAddState(drawingObjectsController, drawingObjects, textObject) ...@@ -1979,7 +1983,7 @@ function TextAddState(drawingObjectsController, drawingObjects, textObject)
{ {
History.Create_NewPoint(); History.Create_NewPoint();
text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode))); text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode)));
drawingObjects.showDrawingObjects(true); drawingObjects.showDrawingObjects(false, new GraphicOption(_this.drawingObjects.getWorksheet(), c_oAscGraphicOption.AddText, 0));
text_object.updateSelectionState(drawingObjects.drawingDocument); text_object.updateSelectionState(drawingObjects.drawingDocument);
} }
}; };
...@@ -3126,6 +3130,7 @@ function GroupState(drawingObjectsController, drawingObjects, group) ...@@ -3126,6 +3130,7 @@ function GroupState(drawingObjectsController, drawingObjects, group)
function ChartGroupState(drawingObjectsController, drawingObjects, group, chart) function ChartGroupState(drawingObjectsController, drawingObjects, group, chart)
{ {
var _this = this;
this.id = STATES_ID_CHART_GROUP; this.id = STATES_ID_CHART_GROUP;
this.drawingObjectsController = drawingObjectsController; this.drawingObjectsController = drawingObjectsController;
this.drawingObjects = drawingObjects; this.drawingObjects = drawingObjects;
...@@ -3190,7 +3195,7 @@ function ChartGroupState(drawingObjectsController, drawingObjects, group, chart) ...@@ -3190,7 +3195,7 @@ function ChartGroupState(drawingObjectsController, drawingObjects, group, chart)
History.Create_NewPoint(); History.Create_NewPoint();
drawingObjects.controller.changeCurrentState(new ChartTextAddGroup(drawingObjects.controller, drawingObjects, group, chart, selected_title)); drawingObjects.controller.changeCurrentState(new ChartTextAddGroup(drawingObjects.controller, drawingObjects, group, chart, selected_title));
text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode))); text_object.paragraphAdd(new ParaText(String.fromCharCode(e.charCode)));
drawingObjects.showDrawingObjects(true); drawingObjects.showDrawingObjects(false, new GraphicOption(_this.drawingObjects.getWorksheet(), c_oAscGraphicOption.AddText, 0));
drawingObjects.controller.updateSelectionState(drawingObjects.drawingDocument); drawingObjects.controller.updateSelectionState(drawingObjects.drawingDocument);
drawingObjects.OnUpdateOverlay(); drawingObjects.OnUpdateOverlay();
} }
......
...@@ -5034,7 +5034,7 @@ ...@@ -5034,7 +5034,7 @@
this.cellCommentator.updateCommentPosition(); this.cellCommentator.updateCommentPosition();
//ToDo this.drawDepCells(); //ToDo this.drawDepCells();
this._drawGraphic(); this._drawGraphic();
this.objectRender.showDrawingObjects(false, new ScrollGraphicObject(this, c_oAscScrollType.Vertical, delta)); this.objectRender.showDrawingObjects(false, new GraphicOption(this, c_oAscGraphicOption.ScrollVertical, delta));
return this; return this;
}, },
...@@ -5118,7 +5118,7 @@ ...@@ -5118,7 +5118,7 @@
this.cellCommentator.updateCommentPosition(); this.cellCommentator.updateCommentPosition();
//ToDo this.drawDepCells(); //ToDo this.drawDepCells();
this._drawGraphic(); this._drawGraphic();
this.objectRender.showDrawingObjects(false, new ScrollGraphicObject(this, c_oAscScrollType.Horizontal, delta)); this.objectRender.showDrawingObjects(false, new GraphicOption(this, c_oAscGraphicOption.ScrollHorizontal, delta));
return this; return this;
}, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment