Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc3b8712

Browse files
Divider element implement.
1 parent7672931 commitc3b8712

File tree

7 files changed

+175
-13
lines changed

7 files changed

+175
-13
lines changed
Lines changed: 47 additions & 0 deletions
Loading

‎daisy_sequence/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@
5151
<objectdata="image/tool/add_fragment.svg"type="image/svg+xml"width="32"></object>
5252
</button>
5353
<pclass="hover_message">フラグメント・グループ・ノートの追加</p>
54+
<br>
55+
<buttonid="tool__add-divider">
56+
<objectdata="image/tool/add_divider.svg"type="image/svg+xml"width="32"></object>
57+
</button>
58+
<pclass="hover_message">境界線の追加</p>
5459
</fieldset>
5560
<divid='property-editor'>
5661
<fieldsetid="editor"class='frame'>

‎daisy_sequence/js/diagram.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ module.exports = class Diagram{
3939
element=Diagram.create_reply_message_(data);
4040
}elseif('fragment'===kind){
4141
element=Diagram.create_fragment_(data);
42+
}elseif('divider'===kind){
43+
element=Diagram.create_divider_(data);
4244
}elseif('operand'===kind){
4345
element=Diagram.create_operand_(data);
4446
}else{
@@ -1011,6 +1013,21 @@ module.exports = class Diagram{
10111013
returnspec;
10121014
}
10131015

1016+
staticcreate_divider_(src)
1017+
{
1018+
letdivider={
1019+
'kind':'divider',
1020+
'id':-1,
1021+
'x':100,
1022+
'y':100,
1023+
'text':'',
1024+
};
1025+
1026+
divider=Object.assign(divider,src);
1027+
1028+
returndivider;
1029+
}
1030+
10141031
staticcreate_operand_(src)
10151032
{
10161033
letoperand={

‎daisy_sequence/js/element.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@ module.exports.Element = class Element{
178178
}elseif('fragment'===element.kind){
179179
element.x=source_position.x+move.x;
180180
element.y=source_position.y+move.y;
181+
}elseif('divider'===element.kind){
182+
element.x=source_position.x+move.x;
183+
element.y=source_position.y+move.y;
181184
}
182185

183186
returntrue;

‎daisy_sequence/js/renderer.js

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ module.exports.RenderingHandle = class RenderingHandle{
6868
returnthis.groups.fragment_group;
6969
}
7070

71+
get_divider_group()
72+
{
73+
returnthis.groups.divider_group;
74+
}
75+
7176
get_editor_group()
7277
{
7378
returnthis.groups.editor_group;
@@ -87,6 +92,7 @@ module.exports.RenderingHandle = class RenderingHandle{
8792
this.groups.spec_group=this.get_root_group().group().addClass('dd__spec-group');
8893
this.groups.other_group=this.get_root_group().group().addClass('dd__other-group');
8994
this.groups.fragment_group=this.get_root_group().group().addClass('dd__fragment-group');
95+
this.groups.divider_group=this.get_root_group().group().addClass('dd__divider-group');
9096

9197
this.groups.editor_group=this.get_root_group().group().addClass('dd__editor-group');
9298
this.groups.focus_group=this.get_editor_group().group().addClass('dd__focus-group');
@@ -254,6 +260,8 @@ module.exports.Renderer = class Renderer{
254260
// Renderer.draw_message(rendering_handle, diagram, diagram.diagram_elements[i], null);
255261
}elseif('fragment'===diagram.diagram_elements[i].kind){
256262
Renderer.draw_fragment(rendering_handle,diagram.diagram_elements[i]);
263+
}elseif('divider'===diagram.diagram_elements[i].kind){
264+
Renderer.draw_divider(rendering_handle,diagram,diagram.diagram_elements[i]);
257265
}else{
258266
console.error(i,diagram.diagram_elements[i]);
259267
constmsg=sprintf("internal error: invalid element kind `%s`(%d,%d)",
@@ -373,7 +381,7 @@ module.exports.Renderer = class Renderer{
373381
for(leti=0;i<elements.length;i++){
374382
letrect=Rect.abs(Element.get_rect(elements[i]));
375383
if(null===rect){
376-
alert('internal error');
384+
alert('internal error. (rect is null)');
377385
}else{
378386
rect=Rect.expand(rect,[3,3]);
379387
letrect_=focus_group.rect(rect.width,rect.height).move(rect.x,rect.y).attr({
@@ -716,6 +724,53 @@ module.exports.Renderer = class Renderer{
716724
returnfragment_group;
717725
}
718726

727+
staticdraw_divider(rendering_handle,diagram,divider)
728+
{
729+
const{Rect}=require('./element');
730+
731+
letdivider_group=rendering_handle.get_divider_group();
732+
letitem_group=divider_group.group().addClass('dd__divider-item');
733+
734+
consttext_point={
735+
'x':divider.x,
736+
'y':divider.y+0,
737+
}
738+
739+
constshow_text=(!/^\s*$/.test(divider.text))?divider.text :'-';
740+
lettext=item_group.text(show_text).move(text_point.x,text_point.y).font({
741+
'fill':'#000',
742+
'size':'24px',
743+
});
744+
745+
letheight=24;
746+
letposition={
747+
'x':0,
748+
'y':divider.y,
749+
'width':diagram.width,
750+
'height':height,
751+
};
752+
753+
for(leti=0;i<2;i++){
754+
consty=position.y+(4*i);
755+
letline0=item_group.line(
756+
position.x,y,
757+
position.width,y,
758+
)
759+
.stroke({
760+
'width':'1.5',
761+
})
762+
.attr({
763+
'opacity':0.4,
764+
});
765+
}
766+
767+
// ** work.rect
768+
if(!divider.hasOwnProperty('work')){
769+
divider.work={};
770+
}
771+
divider.work.rect=Object.assign({},position);
772+
}
773+
719774
staticdraw_operand(rendering_handle,operand,fragment,fragment_position)
720775
{
721776
letfragment_group=rendering_handle.get_fragment_group();
@@ -753,7 +808,6 @@ module.exports.Renderer = class Renderer{
753808
operand.work={};
754809
}
755810
operand.work.rect=Object.assign({},position);
756-
757811
}
758812

759813
staticdraw_message_turnback(rendering_handle,position,is_spec)

‎daisy_sequence/js/tool.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ class Tool{
5050
'callback_mousedown':Tool.callback_mousedown_add_fragment_,
5151
'callback_mouseup':Tool.callback_mouseup_create_element_tool_,
5252
},
53+
{
54+
'kind':'add_divider',
55+
'element':document.getElementById('tool__add-divider'),
56+
'callback_mousedown':Tool.callback_mousedown_add_divider_,
57+
'callback_mouseup':Tool.callback_mouseup_create_element_tool_,
58+
},
5359
];
5460

5561
this.tool_kind=this.tools[0].kind;
@@ -279,6 +285,29 @@ class Tool{
279285
Focus.set_element(focus,fragment);
280286
}
281287

288+
staticcallback_mousedown_add_divider_(mouse_state)
289+
{
290+
{
291+
Doc.history_add(daisy.get_current_doc());
292+
}
293+
294+
letdiagram=daisy.get_current_diagram();
295+
296+
letdata={
297+
'x':mouse_state.point.x,
298+
'y':mouse_state.point.y,
299+
'text':'divider',
300+
};
301+
letdivider=Diagram.create_append_element(diagram,'divider',data);
302+
if(null===divider){
303+
console.error('');
304+
return;
305+
}
306+
307+
letfocus=Doc.get_focus(daisy.get_current_doc());
308+
Focus.set_element(focus,divider);
309+
}
310+
282311
staticcallback_mouseup_nop_(mouse_state)
283312
{
284313
// NOP

‎daisy_sequence/resource/default_document.daisysequence

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
{
22
"editor_info": {
33
"application_name": "daisy_sequence",
4-
"version": "201910.22.0"
4+
"version": "202005.02.0"
55
},
66
"filetype": "daisy sequence",
77
"diagram": {
88
"width": 600,
9-
"height":785,
9+
"height":850,
1010
"property": {
1111
"lifeline_align_axis_y": 30,
1212
"sequence_number_kind": "Simple"
@@ -107,7 +107,7 @@
107107
{
108108
"kind": "message",
109109
"id": 7,
110-
"y":320,
110+
"y":392,
111111
"start": {
112112
"lifeline_id": 0
113113
},
@@ -121,7 +121,7 @@
121121
{
122122
"kind": "message",
123123
"id": 8,
124-
"y":390,
124+
"y":462,
125125
"start": {
126126
"lifeline_id": 0
127127
},
@@ -135,7 +135,7 @@
135135
"kind": "fragment",
136136
"id": 12,
137137
"x": 51,
138-
"y":306,
138+
"y":378,
139139
"width": 496,
140140
"height": 123,
141141
"is_auto_size": false,
@@ -155,7 +155,7 @@
155155
"kind": "fragment",
156156
"id": 13,
157157
"x": 427,
158-
"y":454,
158+
"y":526,
159159
"width": 120,
160160
"height": 40,
161161
"is_auto_size": false,
@@ -187,7 +187,7 @@
187187
{
188188
"kind": "message",
189189
"id": 17,
190-
"y":450,
190+
"y":522,
191191
"start": {
192192
"position_x": 154,
193193
"lifeline_id": 0
@@ -208,7 +208,7 @@
208208
{
209209
"kind": "message",
210210
"id": 20,
211-
"y":612,
211+
"y":684,
212212
"start": {
213213
"position_x": 300,
214214
"lifeline_id": 1
@@ -223,7 +223,7 @@
223223
{
224224
"kind": "message",
225225
"id": 21,
226-
"y":649,
226+
"y":721,
227227
"start": {
228228
"position_x": 407,
229229
"lifeline_id": 1
@@ -256,7 +256,7 @@
256256
{
257257
"kind": "message",
258258
"id": 25,
259-
"y":512,
259+
"y":584,
260260
"start": {
261261
"position_x": 392,
262262
"lifeline_id": 1
@@ -273,7 +273,14 @@
273273
"y_offset": 0,
274274
"height": 199
275275
}
276+
},
277+
{
278+
"kind": "divider",
279+
"id": 27,
280+
"x": 233,
281+
"y": 317,
282+
"text": "After Wake"
276283
}
277284
]
278285
}
279-
}
286+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp