Commit 0e065cbd authored by Dmitry.Vikulov's avatar Dmitry.Vikulov

- Работа с уровнями

- Смещение объектов при ресайзе колонок/строк
- Переход на id graphicObject
- Обработка событий клавы: приоритет у объектов
- Поправлен Undo/Redo

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@48372 954022d7-b5bf-4e40-9824-e11837661b57
parent ba6dec98
...@@ -2277,22 +2277,6 @@ DrawingObjects.prototype = { ...@@ -2277,22 +2277,6 @@ DrawingObjects.prototype = {
Undo: function(type, data) { Undo: function(type, data) {
switch (type) { switch (type) {
case historyitem_DrawingObject_Add:
this.deleteDrawingObject(data);
break;
case historyitem_DrawingObject_Remove:
this.addDrawingObject(data);
break;
case historyitem_DrawingObject_Edit:
if ((data.flags.transactionState == c_oAscTransactionState.No) || (data.flags.transactionState == c_oAscTransactionState.Start)) {
this.deleteDrawingObject(data);
this.addDrawingObject(data);
}
break;
case historyitem_DrawingLayer: case historyitem_DrawingLayer:
if ( data.aLayerBefore.length && data.aLayerAfter.length ) { if ( data.aLayerBefore.length && data.aLayerAfter.length ) {
var aStorage = []; var aStorage = [];
...@@ -2311,22 +2295,6 @@ DrawingObjects.prototype = { ...@@ -2311,22 +2295,6 @@ DrawingObjects.prototype = {
Redo: function(type, data) { Redo: function(type, data) {
switch (type) { switch (type) {
case historyitem_DrawingObject_Add:
this.addDrawingObject(data);
break;
case historyitem_DrawingObject_Remove:
this.deleteDrawingObject(data);
break;
case historyitem_DrawingObject_Edit:
if ((data.flags.transactionState == c_oAscTransactionState.No) || (data.flags.transactionState == c_oAscTransactionState.Stop)) {
this.deleteDrawingObject(data);
this.addDrawingObject(data);
}
break;
case historyitem_DrawingLayer: case historyitem_DrawingLayer:
if ( data.aLayerBefore.length && data.aLayerAfter.length ) { if ( data.aLayerBefore.length && data.aLayerAfter.length ) {
var aStorage = []; var aStorage = [];
...@@ -3254,36 +3222,10 @@ function DrawingObjects() { ...@@ -3254,36 +3222,10 @@ function DrawingObjects() {
overlayCtx.clearRect( 0, 0, worksheet.getCellLeft(0, 1), overlayCtx.getHeight() ); overlayCtx.clearRect( 0, 0, worksheet.getCellLeft(0, 1), overlayCtx.getHeight() );
} }
//-----------------------------------------------------------------------------------
// Common operation for Undo/Redo
//-----------------------------------------------------------------------------------
_this.changeObjectStorage = function(storage) { _this.changeObjectStorage = function(storage) {
aObjects = storage; aObjects = storage;
} }
_this.addDrawingObject = function(object) {
if (object) {
var urObj = _this.cloneDrawingObject(object);
aObjects.push(urObj);
}
}
_this.deleteDrawingObject = function(object) {
var bResult = false;
for (var i = 0; i < _this.countDrawingObjects(); i++) {
if (aObjects[i].id == object.id) {
aObjects.splice(i, 1);
_this.unselectDrawingObjects();
bResult = true;
break;
}
}
return bResult;
}
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
// For object type // For object type
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
...@@ -4399,7 +4341,7 @@ function DrawingObjects() { ...@@ -4399,7 +4341,7 @@ function DrawingObjects() {
_this.getDrawingObject = function(id) { _this.getDrawingObject = function(id) {
for (var i = 0; i < _this.countDrawingObjects(); i++) { for (var i = 0; i < _this.countDrawingObjects(); i++) {
if (aObjects[i].id == id) if (aObjects[i].graphicObject.Id == id)
return aObjects[i]; return aObjects[i];
} }
return null; return null;
...@@ -4562,7 +4504,7 @@ function DrawingObjects() { ...@@ -4562,7 +4504,7 @@ function DrawingObjects() {
var undoRedoLayer = new DrawingLayer(); var undoRedoLayer = new DrawingLayer();
for (var i = 0; i < _this.countDrawingObjects(); i++) { for (var i = 0; i < _this.countDrawingObjects(); i++) {
undoRedoLayer.aLayerBefore[i] = aObjects[i].id; undoRedoLayer.aLayerBefore[i] = aObjects[i].graphicObject.Id;
} }
switch (layerType) { switch (layerType) {
...@@ -4597,7 +4539,7 @@ function DrawingObjects() { ...@@ -4597,7 +4539,7 @@ function DrawingObjects() {
} }
for (var i = 0; i < _this.countDrawingObjects(); i++) { for (var i = 0; i < _this.countDrawingObjects(); i++) {
undoRedoLayer.aLayerAfter[i] = aObjects[i].id; undoRedoLayer.aLayerAfter[i] = aObjects[i].graphicObject.Id;
} }
History.Create_NewPoint(); History.Create_NewPoint();
...@@ -4642,6 +4584,12 @@ function DrawingObjects() { ...@@ -4642,6 +4584,12 @@ function DrawingObjects() {
} }
obj.to.row = foundRow.row; obj.to.row = foundRow.row;
obj.to.rowOff = pxToMm(top + obj.size.height - worksheet.getCellTop(obj.to.row, 0)); obj.to.rowOff = pxToMm(top + obj.size.height - worksheet.getCellTop(obj.to.row, 0));
// Update graphic object
obj.graphicObject.setPosition( pxToMm(obj.getRealLeftOffset(true)), pxToMm(obj.getRealTopOffset(true)) );
//obj.graphicObject.setExtents( pxToMm(obj.getWidthFromTo()), pxToMm(obj.getHeightFromTo()) );
obj.graphicObject.recalculateTransform();
obj.graphicObject.calculateTransformTextMatrix();
} }
} }
......
...@@ -73,10 +73,7 @@ var historyitem_Cell_SetQuotePrefix = 20; ...@@ -73,10 +73,7 @@ var historyitem_Cell_SetQuotePrefix = 20;
var historyitem_Cell_Angle = 21; var historyitem_Cell_Angle = 21;
var historyitem_Cell_Style = 22; var historyitem_Cell_Style = 22;
var historyitem_DrawingObject_Add = 1; var historyitem_DrawingLayer = 1;
var historyitem_DrawingObject_Remove = 2;
var historyitem_DrawingObject_Edit = 3;
var historyitem_DrawingLayer = 4;
var historyitem_AutoShapes_Offset = 1; var historyitem_AutoShapes_Offset = 1;
var historyitem_AutoShapes_Extents = 2; var historyitem_AutoShapes_Extents = 2;
......
...@@ -3068,11 +3068,10 @@ UndoRedoDrawingLayer.prototype = { ...@@ -3068,11 +3068,10 @@ UndoRedoDrawingLayer.prototype = {
return; return;
var ws = api.wb.getWorksheetById(nSheetId); var ws = api.wb.getWorksheetById(nSheetId);
var objectRender = ws.objectRender; if ( bUndo == true )
if (bUndo == true) ws.objectRender.Undo(Type, Data);
objectRender.Undo(Type, Data);
else else
objectRender.Redo(Type, Data); ws.objectRender.Redo(Type, Data);
} }
}; };
......
...@@ -588,7 +588,7 @@ ...@@ -588,7 +588,7 @@
t.__retval = true; t.__retval = true;
//for Mac OS //for Mac OS
if(event.metaKey) if ( event.metaKey )
event.ctrlKey = true; event.ctrlKey = true;
function stop(immediate) { function stop(immediate) {
...@@ -604,6 +604,12 @@ ...@@ -604,6 +604,12 @@
t.lastKeyCode = event.which; t.lastKeyCode = event.which;
} }
var graphicObjects = t.handlers.trigger("getSelectedGraphicObjects");
if ( graphicObjects.length ) {
t.handlers.trigger("graphicObjectWindowKeyDown", event);
return true;
}
// Двигаемся ли мы в выделенной области // Двигаемся ли мы в выделенной области
var selectionActivePointChanged = false; var selectionActivePointChanged = false;
...@@ -850,12 +856,6 @@ ...@@ -850,12 +856,6 @@
if ((dc !== 0 || dr !== 0) && false === t.handlers.trigger("isGlobalLockEditCell")) { if ((dc !== 0 || dr !== 0) && false === t.handlers.trigger("isGlobalLockEditCell")) {
var graphicObjects = t.handlers.trigger("getSelectedGraphicObjects");
if ( graphicObjects.length ) {
t.handlers.trigger("graphicObjectWindowKeyDown", event);
return true;
}
// Проверка на движение в выделенной области // Проверка на движение в выделенной области
if (selectionActivePointChanged) { if (selectionActivePointChanged) {
t.handlers.trigger("selectionActivePointChanged", dc, dr, t.handlers.trigger("selectionActivePointChanged", dc, dr,
......
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