Skip to content

Commit 896583c

Browse files
author
SeungpilPark
committed
#20 Rotate Context Menu
1 parent 7440da0 commit 896583c

7 files changed

Lines changed: 152 additions & 154 deletions

File tree

src/main/webapp/examples/develope.html

Lines changed: 8 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@
164164
<script type="text/javascript" src="../src/shape/elec/BLDG.js"></script>
165165
<script type="text/javascript" src="../src/shape/elec/Location.js"></script>
166166
<script type="text/javascript" src="../src/shape/elec/Manhole.js"></script>
167-
<script type="text/javascript" src="../src/shape/dids/ED.js"></script>
168167
<script type="text/javascript" src="../src/shape/component/DataTable.js"></script>
169168
<script type="text/javascript" src="../src/shape/SvgShape.js"></script>
170169

@@ -390,67 +389,15 @@
390389
})
391390
}
392391

393-
var start = new Date();
394-
dataTable.MOVABLE = false;
395-
canvas.drawShape([100, 100], dataTable, [100, 100], {});
396-
dataTable.setData(data);
397-
dataTable.draw();
398-
var end = new Date();
399-
var number = end.getTime() - start.getTime();
400-
401-
// $.get('resources/images/dids/dids-ed-svg.svg', function (data) {
402-
// canvas.drawShape([200, 200], new OG.SvgShape(new XMLSerializer().serializeToString(data), 'BBB'), [200, 200],
403-
// {
404-
// fill: '#394',
405-
// stroke: 'red',
406-
// 'stroke-width': '30'
407-
// }
408-
// );
409-
// });
410-
//
411-
// $.get('resources/images/dids/dids-activity.svg', function (data) {
412-
// canvas.drawShape([400, 200], new OG.SvgShape(new XMLSerializer().serializeToString(data), 'BBB'), [200, 200],
413-
// {
414-
// fill: '#394',
415-
// stroke: 'red',
416-
// 'stroke-width': '50'
417-
// }
418-
// );
419-
// });
420-
//
421-
// $.get('resources/images/dids/dids-folder.svg', function (data) {
422-
// canvas.drawShape([600, 200], new OG.SvgShape(new XMLSerializer().serializeToString(data), 'BBB'), [200, 200],
423-
// {
424-
// fill: '#394',
425-
// stroke: 'red',
426-
// 'stroke-width': '50'
427-
// }
428-
// );
429-
// });
430-
//
431-
// $.get('resources/images/dids/dids-doc.svg', function (data) {
432-
// canvas.drawShape([200, 500], new OG.SvgShape(new XMLSerializer().serializeToString(data), 'BBB'), [200, 200],
433-
// {
434-
// fill: '#394',
435-
// stroke: 'red',
436-
// 'stroke-width': '50'
437-
// }
438-
// );
439-
// });
440-
//
441-
// $.get('resources/images/dids/dids-dwg.svg', function (data) {
442-
// canvas.drawShape([400, 500], new OG.SvgShape(new XMLSerializer().serializeToString(data), 'BBB'), [200, 200],
443-
// {
444-
// fill: '#394',
445-
// stroke: 'red',
446-
// 'stroke-width': '50'
447-
// }
448-
// );
449-
// });
450-
451-
392+
// var start = new Date();
393+
// dataTable.MOVABLE = false;
394+
// canvas.drawShape([100, 100], dataTable, [100, 100], {});
395+
// dataTable.setData(data);
396+
// dataTable.draw();
397+
// var end = new Date();
398+
// var number = end.getTime() - start.getTime();
452399

453-
//
400+
canvas.drawShape([100, 100], new OG.RectangleShape(), [100, 100], {});
454401

455402
});
456403

src/main/webapp/opengraph/OpenGraph-0.1.2-SNAPSHOT-All.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/webapp/opengraph/OpenGraph-0.1.2-SNAPSHOT-min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/webapp/opengraph/OpenGraph-0.1.2-SNAPSHOT.js

Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17220,6 +17220,13 @@ OG.shape.component.DataTable = function () {
1722017220

1722117221
//옵션데이터
1722217222
this.options = {
17223+
/**
17224+
* 컨텐트 외부 드래그 가능 여부
17225+
*/
17226+
enableMoveOutSide: false,
17227+
/**
17228+
* 리사이즈 방향
17229+
*/
1722317230
resizeAxis: 'X',
1722417231
/**
1722517232
* 셀 콘텐트 axis 무브
@@ -18637,15 +18644,24 @@ OG.shape.component.DataTable.prototype.drawCellContent = function (cellView, inf
1863718644
}
1863818645
//콘텐트 이동시 처리
1863918646
contentElement.shape.onAddToGroup = function (groupElement, element) {
18640-
//그룹이 소속된 테이블이 아닐 경우, 셀에 자신의 정보를 삭제한 후, 등록된 이벤트 핸들러들을 스스로 초기화시킨다.
18647+
//그룹이 소속된 테이블이 아닐 경우
1864118648
if (groupElement.id != me.currentElement.id) {
18642-
me.removeCellContent(element, true);
18643-
element.shape.onRemoveShape = function () {
18644-
};
18645-
element.shape.onAddToGroup = function () {
18646-
};
18647-
element.shape.onResize = function () {
18648-
};
18649+
18650+
//외부 드래그 허용이 아닌경우 테이블 그룹에 다시 추가 후 셀을 다시 그린다.
18651+
if (!me.options.enableMoveOutSide) {
18652+
me.currentElement.appendChild(contentElement);
18653+
me.redrawCell(cellView);
18654+
}
18655+
else {
18656+
//셀에 자신의 정보를 삭제한 후, 등록된 이벤트 핸들러들을 스스로 초기화시킨다.
18657+
me.removeCellContent(element, true);
18658+
element.shape.onRemoveShape = function () {
18659+
};
18660+
element.shape.onAddToGroup = function () {
18661+
};
18662+
element.shape.onResize = function () {
18663+
};
18664+
}
1864918665
}
1865018666
}
1865118667
//콘텐트 리사이즈시 처리
@@ -30663,6 +30679,51 @@ OG.handler.EventHandler.prototype = {
3066330679
});
3066430680
},
3066530681

30682+
makeRotate: function(){
30683+
var me = this;
30684+
30685+
return {
30686+
'rotate': {
30687+
name: '회전',
30688+
items: {
30689+
'rotate_select': {
30690+
name: '선택',
30691+
type: 'select',
30692+
options: {
30693+
'0': '0',
30694+
'45': '45',
30695+
'90': '90',
30696+
'135': '135',
30697+
'180': '180',
30698+
'-45': '-45',
30699+
'-90': '-90',
30700+
'-135': '-135',
30701+
'-180': '-180'
30702+
},
30703+
selected: '0',
30704+
events: {
30705+
change: function (e) {
30706+
me.rotateSelectedShape(e.target.value);
30707+
}
30708+
}
30709+
},
30710+
'sep8_8_1': '---------',
30711+
'rotate_custom': {
30712+
name: '직접입력',
30713+
type: 'text',
30714+
events: {
30715+
keyup: function (e) {
30716+
if (e.target.value !== '') {
30717+
me.rotateSelectedShape(e.target.value);
30718+
}
30719+
}
30720+
}
30721+
}
30722+
}
30723+
}
30724+
}
30725+
},
30726+
3066630727
makeFillColor: function () {
3066730728
var me = this;
3066830729

@@ -31540,6 +31601,7 @@ OG.handler.EventHandler.prototype = {
3154031601
items: this.mergeContextMenu(
3154131602
this.makeFillColor(),
3154231603
this.makeFillOpacity(),
31604+
this.makeRotate(),
3154331605
this.makeLineStyle(),
3154431606
this.makeLineColor(),
3154531607
this.makeLineWidth()

src/main/webapp/src/handler/EventHandler.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2675,6 +2675,51 @@ OG.handler.EventHandler.prototype = {
26752675
});
26762676
},
26772677

2678+
makeRotate: function(){
2679+
var me = this;
2680+
2681+
return {
2682+
'rotate': {
2683+
name: '회전',
2684+
items: {
2685+
'rotate_select': {
2686+
name: '선택',
2687+
type: 'select',
2688+
options: {
2689+
'0': '0',
2690+
'45': '45',
2691+
'90': '90',
2692+
'135': '135',
2693+
'180': '180',
2694+
'-45': '-45',
2695+
'-90': '-90',
2696+
'-135': '-135',
2697+
'-180': '-180'
2698+
},
2699+
selected: '0',
2700+
events: {
2701+
change: function (e) {
2702+
me.rotateSelectedShape(e.target.value);
2703+
}
2704+
}
2705+
},
2706+
'sep8_8_1': '---------',
2707+
'rotate_custom': {
2708+
name: '직접입력',
2709+
type: 'text',
2710+
events: {
2711+
keyup: function (e) {
2712+
if (e.target.value !== '') {
2713+
me.rotateSelectedShape(e.target.value);
2714+
}
2715+
}
2716+
}
2717+
}
2718+
}
2719+
}
2720+
}
2721+
},
2722+
26782723
makeFillColor: function () {
26792724
var me = this;
26802725

@@ -3552,6 +3597,7 @@ OG.handler.EventHandler.prototype = {
35523597
items: this.mergeContextMenu(
35533598
this.makeFillColor(),
35543599
this.makeFillOpacity(),
3600+
this.makeRotate(),
35553601
this.makeLineStyle(),
35563602
this.makeLineColor(),
35573603
this.makeLineWidth()

src/main/webapp/src/shape/component/DataTable.js

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,13 @@ OG.shape.component.DataTable = function () {
112112

113113
//옵션데이터
114114
this.options = {
115+
/**
116+
* 컨텐트 외부 드래그 가능 여부
117+
*/
118+
enableMoveOutSide: false,
119+
/**
120+
* 리사이즈 방향
121+
*/
115122
resizeAxis: 'X',
116123
/**
117124
* 셀 콘텐트 axis 무브
@@ -1529,15 +1536,24 @@ OG.shape.component.DataTable.prototype.drawCellContent = function (cellView, inf
15291536
}
15301537
//콘텐트 이동시 처리
15311538
contentElement.shape.onAddToGroup = function (groupElement, element) {
1532-
//그룹이 소속된 테이블이 아닐 경우, 셀에 자신의 정보를 삭제한 후, 등록된 이벤트 핸들러들을 스스로 초기화시킨다.
1539+
//그룹이 소속된 테이블이 아닐 경우
15331540
if (groupElement.id != me.currentElement.id) {
1534-
me.removeCellContent(element, true);
1535-
element.shape.onRemoveShape = function () {
1536-
};
1537-
element.shape.onAddToGroup = function () {
1538-
};
1539-
element.shape.onResize = function () {
1540-
};
1541+
1542+
//외부 드래그 허용이 아닌경우 테이블 그룹에 다시 추가 후 셀을 다시 그린다.
1543+
if (!me.options.enableMoveOutSide) {
1544+
me.currentElement.appendChild(contentElement);
1545+
me.redrawCell(cellView);
1546+
}
1547+
else {
1548+
//셀에 자신의 정보를 삭제한 후, 등록된 이벤트 핸들러들을 스스로 초기화시킨다.
1549+
me.removeCellContent(element, true);
1550+
element.shape.onRemoveShape = function () {
1551+
};
1552+
element.shape.onAddToGroup = function () {
1553+
};
1554+
element.shape.onResize = function () {
1555+
};
1556+
}
15411557
}
15421558
}
15431559
//콘텐트 리사이즈시 처리

src/main/webapp/src/shape/dids/ED.js

Lines changed: 0 additions & 73 deletions
This file was deleted.

0 commit comments

Comments
 (0)