Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kityminder-core
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
吴志俊
kityminder-core
Commits
98e0d3cd
Commit
98e0d3cd
authored
Feb 20, 2014
by
techird
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
交互说明
parent
3de023b6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
109 additions
and
502 deletions
+109
-502
Actual.xml
kityminder计划.oplx/Actual.xml
+0
-174
__TOC.xml
kityminder计划.oplx/__TOC.xml
+0
-224
__changelog.xml
kityminder计划.oplx/__changelog.xml
+0
-104
交互点说明.md
spec/交互点说明.md
+109
-0
No files found.
kityminder计划.oplx/Actual.xml
deleted
100644 → 0
View file @
3de023b6
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<scenario
xmlns=
"http://www.omnigroup.com/namespace/OmniPlan/v2"
id=
"mFlQ8Rl4Gch"
>
<start-date>
2014-02-11T00:00:00.000Z
</start-date>
<prototype-task>
<task
id=
"t4294967294"
>
<title>
Task 1
</title>
<effort>
28800
</effort>
</task>
</prototype-task>
<prototype-task>
<task
id=
"t4294967293"
>
<title>
Milestone 1
</title>
<type>
milestone
</type>
</task>
</prototype-task>
<prototype-task>
<task
id=
"t4294967292"
>
<title>
Group 1
</title>
<type>
group
</type>
</task>
</prototype-task>
<prototype-resource>
<resource
id=
"r4294967294"
>
<name>
Resource 1
</name>
<type>
Staff
</type>
</resource>
</prototype-resource>
<prototype-resource>
<resource
id=
"r4294967293"
>
<name>
Equipment 1
</name>
<type>
Equipment
</type>
</resource>
</prototype-resource>
<prototype-resource>
<resource
id=
"r4294967292"
>
<name>
Material 1
</name>
<type>
Material
</type>
<units-available>
0
</units-available>
<efficiency>
0
</efficiency>
</resource>
</prototype-resource>
<prototype-resource>
<resource
id=
"r4294967291"
>
<name>
Group 1
</name>
<type>
Group
</type>
</resource>
</prototype-resource>
<top-resource
idref=
"r-1"
/>
<resource
id=
"r-1"
>
<type>
Group
</type>
<child-resource
idref=
"r1"
/>
<child-resource
idref=
"r2"
/>
<child-resource
idref=
"r3"
/>
<child-resource
idref=
"r4"
/>
</resource>
<resource
id=
"r1"
>
<name>
Resource 1
</name>
<type>
Staff
</type>
</resource>
<resource
id=
"r2"
>
<name>
家鸣
</name>
<type>
Staff
</type>
</resource>
<resource
id=
"r3"
>
<name>
潘
</name>
<type>
Staff
</type>
</resource>
<resource
id=
"r4"
>
<name>
战
</name>
<type>
Staff
</type>
</resource>
<top-task
idref=
"t-1"
/>
<task
id=
"t-1"
>
<type>
group
</type>
<child-task
idref=
"t1"
/>
<child-task
idref=
"t2"
/>
<child-task
idref=
"t3"
/>
<child-task
idref=
"t4"
/>
<child-task
idref=
"t6"
/>
<child-task
idref=
"t5"
/>
<child-task
idref=
"t7"
/>
<child-task
idref=
"t8"
/>
</task>
<task
id=
"t1"
>
<title>
数据导入导出
</title>
<effort>
28800
</effort>
<max-estimate>
115200
</max-estimate>
<effort-done>
28800
</effort-done>
<start-constraint-date>
2014-02-12T00:00:00.000Z
</start-constraint-date>
<style>
<value
key=
"font-fill"
>
<color
r=
"0.299775"
g=
"0.436444"
b=
"1"
/>
</value>
</style>
<assignment
idref=
"r2"
/>
<start-no-earlier-than>
2014-02-12T00:00:00.000Z
</start-no-earlier-than>
</task>
<task
id=
"t2"
>
<title>
undo/redo
</title>
<effort>
57600
</effort>
<min-estimate>
28800
</min-estimate>
<max-estimate>
102600
</max-estimate>
<effort-done>
57600
</effort-done>
<start-constraint-date>
2014-02-12T00:00:00.000Z
</start-constraint-date>
<style>
<value
key=
"font-fill"
>
<color
r=
"0.299775"
g=
"0.436444"
b=
"1"
/>
</value>
</style>
<assignment
idref=
"r3"
/>
<assignment
idref=
"r4"
/>
<start-no-earlier-than>
2014-02-12T00:00:00.000Z
</start-no-earlier-than>
</task>
<task
id=
"t3"
>
<title>
layout
</title>
<effort>
27900
</effort>
<min-estimate>
27000
</min-estimate>
<max-estimate>
28800
</max-estimate>
<effort-done>
27900
</effort-done>
<start-constraint-date>
2014-02-11T00:15:00.000Z
</start-constraint-date>
<style>
<value
key=
"font-fill"
>
<color
r=
"0.299775"
g=
"0.436444"
b=
"1"
/>
</value>
</style>
<assignment
idref=
"r3"
/>
<start-no-earlier-than>
2014-02-11T00:15:00.000Z
</start-no-earlier-than>
</task>
<task
id=
"t4"
>
<title>
拖放,改变子树
</title>
<effort>
57600
</effort>
<min-estimate>
28800
</min-estimate>
<start-constraint-date>
2014-02-13T00:00:00.000Z
</start-constraint-date>
<assignment
idref=
"r2"
/>
<start-no-earlier-than>
2014-02-13T00:00:00.000Z
</start-no-earlier-than>
</task>
<task
id=
"t5"
>
<title>
添加icon
</title>
<effort>
86400
</effort>
<min-estimate>
28800
</min-estimate>
<start-constraint-date>
2014-02-13T00:00:00.000Z
</start-constraint-date>
<assignment
idref=
"r3"
/>
<start-no-earlier-than>
2014-02-13T00:00:00.000Z
</start-no-earlier-than>
</task>
<task
id=
"t6"
>
<title>
ui美化
</title>
<effort>
55800
</effort>
<min-estimate>
28800
</min-estimate>
<max-estimate>
57600
</max-estimate>
<start-constraint-date>
2014-02-17T00:00:00.000Z
</start-constraint-date>
<assignment
idref=
"r2"
/>
<assignment
idref=
"r3"
/>
<start-no-earlier-than>
2014-02-17T00:00:00.000Z
</start-no-earlier-than>
</task>
<task
id=
"t7"
>
<title>
官网
</title>
<effort>
115200
</effort>
<min-estimate>
28800
</min-estimate>
<start-constraint-date>
2014-02-18T00:00:00.000Z
</start-constraint-date>
<assignment
idref=
"r2"
/>
<assignment
idref=
"r3"
/>
<start-no-earlier-than>
2014-02-18T00:00:00.000Z
</start-no-earlier-than>
</task>
<task
id=
"t8"
>
<title>
提测
</title>
<type>
milestone
</type>
<completion-percentage>
1
</completion-percentage>
<start-constraint-date>
2014-02-20T00:45:00.000Z
</start-constraint-date>
<start-no-earlier-than>
2014-02-20T00:45:00.000Z
</start-no-earlier-than>
</task>
<critical-path
root=
"-1"
enabled=
"false"
resources=
"false"
>
<color
r=
"1"
g=
"0.5"
b=
"0.5"
/>
</critical-path>
</scenario>
kityminder计划.oplx/__TOC.xml
deleted
100644 → 0
View file @
3de023b6
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<omniplan
xmlns=
"http://www.omnigroup.com/namespace/OmniPlan/v2"
>
<window
x=
"1923"
y=
"4"
w=
"1920"
h=
"1054"
>
<editing-scenario>
mFlQ8Rl4Gch
</editing-scenario>
<view>
task
</view>
<change-tracking/>
<draw-folded/>
<status-display>
basic
</status-display>
<task-view>
<split-view-divider-position>
306
</split-view-divider-position>
<outline
x=
"0"
y=
"0"
w=
"306"
h=
"935"
>
<column
name=
"Violations"
width=
"20"
/>
<column
name=
"Notes"
width=
"20"
/>
<column
name=
"Title"
width=
"191"
/>
<column
name=
"Effort"
width=
"70"
/>
<selected-items-at-filter-time
idrefs=
"t9 t4 t7 t2 t5 t8 t3 t6"
/>
</outline>
<gantt-view
x=
"-26"
y=
"0"
w=
"1598"
h=
"935"
>
<view-mode>
actual
</view-mode>
<dependency-lines/>
<constraints/>
<show-project-end/>
<task-bar-label
task-type=
"group"
position=
"left"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"group"
position=
"center"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"group"
position=
"right"
>
<key>
Assigned
</key>
</task-bar-label>
<task-bar-label
task-type=
"milestone"
position=
"left"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"milestone"
position=
"center"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"milestone"
position=
"right"
>
<key>
Assigned
</key>
</task-bar-label>
<task-bar-label
task-type=
"task"
position=
"left"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"task"
position=
"center"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"task"
position=
"right"
>
<key>
Assigned
</key>
</task-bar-label>
<scale
scale-name=
"Automatic"
full-day-width=
"300"
>
<selected/>
</scale>
<scale
scale-name=
"Day"
full-day-width=
"1215"
/>
<scale
scale-name=
"Hour"
full-day-width=
"65880"
/>
<scale
scale-name=
"Minute"
full-day-width=
"64800"
/>
<scale
scale-name=
"Month"
full-day-width=
"34.5"
/>
<scale
scale-name=
"Quarter"
full-day-width=
"9.6"
/>
<scale
scale-name=
"Week"
full-day-width=
"162"
/>
<scale
scale-name=
"Year"
full-day-width=
"2.3625"
/>
</gantt-view>
</task-view>
<resource-view>
<split-view-divider-position>
306
</split-view-divider-position>
<outline
x=
"0"
y=
"0"
w=
"291"
h=
"935"
>
<column
name=
"IM"
width=
"20"
/>
<column
name=
"Notes"
width=
"20"
/>
<column
name=
"Type"
width=
"49"
/>
<column
name=
"Resource"
width=
"135"
/>
<column
name=
"#"
width=
"75"
/>
</outline>
<timeline
x=
"-65"
y=
"0"
w=
"1570"
h=
"935"
>
<show-project-end/>
<task-bar-label
task-type=
"group"
position=
"left"
>
<key>
Title
</key>
</task-bar-label>
<task-bar-label
task-type=
"group"
position=
"center"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"group"
position=
"right"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"milestone"
position=
"left"
>
<key>
Title
</key>
</task-bar-label>
<task-bar-label
task-type=
"milestone"
position=
"center"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"milestone"
position=
"right"
>
<key>
Assigned
</key>
</task-bar-label>
<task-bar-label
task-type=
"task"
position=
"left"
>
<key>
Title
</key>
</task-bar-label>
<task-bar-label
task-type=
"task"
position=
"center"
>
<key/>
</task-bar-label>
<task-bar-label
task-type=
"task"
position=
"right"
>
<key/>
</task-bar-label>
<scale
scale-name=
"Automatic"
full-day-width=
"300"
>
<selected/>
</scale>
<scale
scale-name=
"Day"
full-day-width=
"1215"
/>
<scale
scale-name=
"Hour"
full-day-width=
"65880"
/>
<scale
scale-name=
"Minute"
full-day-width=
"64800"
/>
<scale
scale-name=
"Month"
full-day-width=
"34.5"
/>
<scale
scale-name=
"Quarter"
full-day-width=
"9.6"
/>
<scale
scale-name=
"Week"
full-day-width=
"162"
/>
<scale
scale-name=
"Year"
full-day-width=
"2.3625"
/>
</timeline>
</resource-view>
<calendar>
<split-view-divider-position>
290
</split-view-divider-position>
<outline
x=
"0"
y=
"0"
w=
"275"
h=
"900"
>
<column
name=
"IM"
width=
"20"
/>
<column
name=
"Notes"
width=
"20"
/>
<column
name=
"Type"
width=
"49"
/>
<column
name=
"Resource"
width=
"139"
/>
<column
name=
"Custom Work Week"
width=
"20"
/>
<column
name=
"Schedule Exception"
width=
"20"
/>
</outline>
</calendar>
</window>
<project>
<next-task-id>
10
</next-task-id>
<next-resource-id>
5
</next-resource-id>
<scenario
id=
"mFlQ8Rl4Gch"
name=
"Actual"
filename=
"Actual.xml"
/>
<date-display
dates=
"true"
times=
"true"
seconds=
"false"
/>
<numbering-style>
wbs
</numbering-style>
<critical-path-slack>
0
</critical-path-slack>
<currency-format>
CN¥1,234.56
</currency-format>
<duration-format
hours-per-day=
"8"
hours-per-week=
"40"
hours-per-month=
"160"
hours-per-year=
"1920"
hours=
"true"
days=
"true"
weeks=
"true"
/>
<effort-format
hours-per-day=
"8"
hours-per-week=
"40"
hours-per-month=
"160"
hours-per-year=
"1920"
hours=
"true"
days=
"true"
weeks=
"true"
/>
<base-style>
<style/>
</base-style>
<column-title-style>
<style>
<value
key=
"font-weight"
>
9
</value>
<value
key=
"paragraph-alignment"
>
center
</value>
</style>
</column-title-style>
<note-style>
<style>
<value
key=
"font-family"
>
Helvetica
</value>
<value
key=
"font-fill"
>
<color
w=
"0.334677"
/>
</value>
<value
key=
"font-size"
>
11
</value>
</style>
</note-style>
<standard-task-style>
<style/>
</standard-task-style>
<overdue-task-style>
<style/>
</overdue-task-style>
<completed-task-style>
<style/>
</completed-task-style>
<group-task-style>
<style>
<value
key=
"font-weight"
>
9
</value>
</style>
</group-task-style>
<milestone-task-style>
<style/>
</milestone-task-style>
<resource-style>
<style/>
</resource-style>
<not-editable-style>
<style>
<value
key=
"font-fill"
>
<color
w=
"0.334677"
/>
</value>
</style>
</not-editable-style>
<subscribe-refresh>
0
</subscribe-refresh>
<leveling>
<constrains-completion-date/>
</leveling>
<page-adornment>
<master-page-headers>
<header
location=
"left"
>
<text>
<p>
<run>
<lit><cell
variable=
"OPDocumentTitleVariableIdentifier"
/></lit>
</run>
</p>
</text>
</header>
<header
location=
"right"
>
<text>
<p>
<run>
<lit><cell
variable=
"OPPrintJobTimestampVariableIdentifier"
/></lit>
</run>
</p>
</text>
</header>
<footer
location=
"left"
>
<text>
<p>
<run>
<lit><cell
variable=
"OPDocumentFilenameVariableIdentifier"
/></lit>
</run>
</p>
</text>
</footer>
<footer
location=
"right"
>
<text>
<p>
<run>
<lit><cell
variable=
"OPPageNumberVariableIdentifier"
/></lit>
</run>
</p>
</text>
</footer>
</master-page-headers>
</page-adornment>
</project>
</omniplan>
kityminder计划.oplx/__changelog.xml
deleted
100644 → 0
View file @
3de023b6
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<changelog
xmlns=
"http://www.omnigroup.com/namespace/OmniPlan/v2"
>
<version>
2.1
</version>
<task-change-set
user=
"campaign"
date=
"2014-02-11T09:53:33.500Z"
timestamp=
"2014-02-11T09:53:33.500Z"
>
<change
idref=
"t2"
to=
"t-1"
to-position=
"1"
resolved=
"yes"
>
<change
idref=
"t2"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"57600"
/>
<change
idref=
"t2"
attribute=
"internalAssignments"
type=
"string"
from=
""
to=
"3; 4"
/>
<change
idref=
"t2"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-12T00:00:00.000Z"
/>
<change
idref=
"t2"
attribute=
"title"
type=
"string"
to=
"undo/redo"
/>
</change>
<change
idref=
"t3"
to=
"t-1"
to-position=
"2"
resolved=
"yes"
>
<change
idref=
"t3"
attribute=
"internalAssignments"
type=
"string"
from=
""
to=
"3"
/>
<change
idref=
"t3"
attribute=
"title"
type=
"string"
to=
"layout"
/>
</change>
<change
idref=
"t4"
to=
"t-1"
to-position=
"3"
resolved=
"yes"
>
<change
idref=
"t4"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"57600"
/>
<change
idref=
"t4"
attribute=
"internalAssignments"
type=
"string"
from=
""
to=
"2"
/>
<change
idref=
"t4"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-17T00:00:00.000Z"
/>
<change
idref=
"t4"
attribute=
"title"
type=
"string"
to=
"拖放,改变子树"
/>
</change>
<change
idref=
"t5"
to=
"t-1"
to-position=
"4"
resolved=
"yes"
>
<change
idref=
"t5"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"86400"
/>
<change
idref=
"t5"
attribute=
"internalAssignments"
type=
"string"
from=
""
to=
"3"
/>
<change
idref=
"t5"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-13T00:00:00.000Z"
/>
<change
idref=
"t5"
attribute=
"title"
type=
"string"
to=
"添加icon"
/>
</change>
<change
idref=
"t6"
to=
"t-1"
to-position=
"5"
resolved=
"yes"
>
<change
idref=
"t6"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"55800"
/>
<change
idref=
"t6"
attribute=
"internalAssignments"
type=
"string"
from=
""
to=
"2; 3"
/>
<change
idref=
"t6"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-19T00:00:00.000Z"
/>
<change
idref=
"t6"
attribute=
"title"
type=
"string"
to=
"ui美化"
/>
</change>
<change
idref=
"t7"
to=
"t-1"
to-position=
"6"
resolved=
"yes"
>
<change
idref=
"t7"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"115200"
/>
<change
idref=
"t7"
attribute=
"internalAssignments"
type=
"string"
from=
""
to=
"2; 3"
/>
<change
idref=
"t7"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-20T00:00:00.000Z"
/>
<change
idref=
"t7"
attribute=
"title"
type=
"string"
to=
"官网"
/>
</change>
<change
idref=
"t1"
attribute=
"title"
type=
"string"
from=
"Task 1"
to=
"数据导入导出"
resolved=
"yes"
/>
<change
idref=
"t1"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"86400"
resolved=
"yes"
/>
<change
idref=
"t1"
attribute=
"internalAssignments"
type=
"string"
from=
""
to=
"2"
resolved=
"yes"
/>
<change
idref=
"t1"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-12T00:00:00.000Z"
resolved=
"yes"
/>
</task-change-set>
<task-change-set
user=
"campaign"
date=
"2014-02-12T09:05:14.521Z"
timestamp=
"2014-02-12T09:05:14.521Z"
>
<change
idref=
"t8"
to=
"t-1"
to-position=
"7"
>
<change
idref=
"t8"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"0"
/>
<change
idref=
"t8"
attribute=
"isSplittableTask"
type=
"real"
from=
"1"
to=
"0"
/>
<change
idref=
"t8"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-24T01:00:00.000Z"
/>
<change
idref=
"t8"
attribute=
"percentCompleteForMilestone"
type=
"real"
to=
"0"
/>
<change
idref=
"t8"
attribute=
"taskType"
type=
"real"
from=
"0"
to=
"1"
/>
<change
idref=
"t8"
attribute=
"title"
type=
"string"
to=
"提测"
/>
</change>
<change
idref=
"t3"
attribute=
"effort"
type=
"real"
from=
"28800"
to=
"27900"
/>
<change
idref=
"t3"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
to=
"2014-02-11T00:15:00.000Z"
/>
</task-change-set>
<task-change-set
user=
"campaign"
date=
"2014-02-12T10:24:17.663Z"
timestamp=
"2014-02-12T10:24:17.663Z"
>
<change
idref=
"t6"
from=
"t-1"
from-position=
"5"
to=
"t-1"
to-position=
"4"
/>
<change
idref=
"t1"
attribute=
"effort"
type=
"real"
from=
"86400"
to=
"28800"
/>
<change
idref=
"t1"
attribute=
"styleDict"
type=
"dict"
to=
"{
"font-fill" = {
b = 1;
g = "0.436444";
r = "0.299775";
};
}"
/>
<change
idref=
"t1"
attribute=
"internalEffortDone"
type=
"real"
from=
"0"
to=
"28800"
/>
<change
idref=
"t2"
attribute=
"styleDict"
type=
"dict"
to=
"{
"font-fill" = {
b = 1;
g = "0.436444";
r = "0.299775";
};
}"
/>
<change
idref=
"t2"
attribute=
"internalEffortDone"
type=
"real"
from=
"0"
to=
"57600"
/>
<change
idref=
"t3"
attribute=
"styleDict"
type=
"dict"
to=
"{
"font-fill" = {
b = 1;
g = "0.436444";
r = "0.299775";
};
}"
/>
<change
idref=
"t3"
attribute=
"internalEffortDone"
type=
"real"
from=
"0"
to=
"27900"
/>
<change
idref=
"t4"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
from=
"2014-02-17T00:00:00.000Z"
to=
"2014-02-13T00:00:00.000Z"
/>
<change
idref=
"t6"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
from=
"2014-02-19T00:00:00.000Z"
to=
"2014-02-17T00:00:00.000Z"
/>
<change
idref=
"t7"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
from=
"2014-02-20T00:00:00.000Z"
to=
"2014-02-18T00:00:00.000Z"
/>
<change
idref=
"t8"
attribute=
"title"
type=
"string"
from=
"提测"
to=
"提测 "
/>
<change
idref=
"t8"
attribute=
"percentCompleteForMilestone"
type=
"real"
from=
"0"
to=
"1"
/>
<change
idref=
"t8"
attribute=
"noEarlierThanConstraintDate"
type=
"date"
from=
"2014-02-24T01:00:00.000Z"
to=
"2014-02-20T00:45:00.000Z"
/>
</task-change-set>
<resource-change-set
user=
"campaign"
date=
"2014-02-11T09:53:33.500Z"
timestamp=
"2014-02-11T09:53:33.500Z"
>
<change
idref=
"r2"
to=
"r-1"
to-position=
"1"
resolved=
"yes"
>
<change
idref=
"r2"
attribute=
"name"
type=
"string"
to=
"家鸣"
/>
</change>
<change
idref=
"r3"
to=
"r-1"
to-position=
"2"
resolved=
"yes"
>
<change
idref=
"r3"
attribute=
"name"
type=
"string"
to=
"潘"
/>
</change>
<change
idref=
"r4"
to=
"r-1"
to-position=
"3"
resolved=
"yes"
>
<change
idref=
"r4"
attribute=
"name"
type=
"string"
to=
"战"
/>
</change>
</resource-change-set>
<metadata-change-set
user=
"campaign"
date=
"2014-02-11T09:53:33.500Z"
timestamp=
"2014-02-11T09:53:33.500Z"
>
<change
idref=
"m1"
attribute=
"fixedDate"
type=
"date"
from=
"2007-01-01T20:00:00.000Z"
to=
"2014-02-11T00:00:00.000Z"
resolved=
"yes"
/>
</metadata-change-set>
</changelog>
spec/交互点说明.md
0 → 100644
View file @
98e0d3cd
测试要点
1. 操作模式
1.1 常规模式
1.1.1 只在该模式允许的操作:`节点选择`、`创建新节点`、`拖动到父节点`
1.2 拖动模式
1.1.2 只在该模式允许的操作:`画布拖放`
1.3 文本编辑模式
1.1.3 只在该模式允许的操作:`文本框选`、`文本编辑`
1.4 模式切换
1.4.1 常规模式下,在单个选中的节点上点击文字区域(多选的情况下不算),进入文本编辑模式,并且光标定在点击的位置上
1.4.2 常规模式下,在任意节点上双击文字区域,进入文本编辑模式,并且文本被选中
1.4.3 常规模式下,创建了新节点的时候,进入文本编辑模式,新节点文本被选中
1.4.4 常规模式下,有唯一选中的节点,按下字母和数字的按键会进入文本编辑模式,并且文字变为刚输入的字母或数字,或是弹出输入法框
1.4.5 文本编辑模式下,按 Tab 和 Enter 退出文本编辑模式,回到常规模式
1.4.6 文本编辑模式下,点击非文本区域的任何位置,退出文本编辑模式,回到常规模式
1.4.7 常规模式下,按 Space 或点击 UI 上的拖动图标进入拖动模式
1.4.8 拖动模式下,按 Space 或点击 UI 上的拖动图标退出拖动模式,回到常规模式
2. `节点选择` 交互
2.1 该交互只在常规模式下有效
2.2 点击任意未被选中的节点,会使其选中
2.3 点击空白处,会取消节点的选择
2.4 按着 Shift 键,点击的节点会切换选择状态
2.5 在空白处按下鼠标并移动10像素后,会显示选框;当选框跟节点有重合的时候,节点会被选中,没有重合的节点不被选中
2.6 按键盘方向键的时候:
2.6.1 对于一个节点“方向”的定义为:
2.6.1.1 以节点为坐标原点的直角坐标系顺时针旋转45度,第一象限为“上”,第二象限为“左”,第三象限为“右”,第四象限为“下”
2.6.2 假如当前没有节点被选中,任何方向键都将选中根节点
2.6.3 假如当前有唯一选中的节点,将导航至指定方向区域的最近的节点
2.6.4 假如有多个选择的节点,以选择顺序第一个节点为参照,导航至其指定方向区域的最近的节点
2.6.5 假如被导航的区域中没有节点,选区保持不变
3. `创建新节点` 交互
3.1 目标节点定义为:
3.1.1 如果有唯一选中的节点,其为目标节点
3.1.2 如果有多个选中的节点,则首个(时间上)被选中的节点为目标节点
3.2 如果存在目标节点:
3.2.1 按下键盘的 Tab 键,会创建一个目标节点的子节点,并且新节点在唯一选中状态,模式变为文本编辑模式
3.2.2 按下键盘的 Enter 键,并且目标节点不是根节点,会创建一个目标节点的兄弟节点(紧邻的位置上),并且新节点在唯一选中,模式变为文本编辑模式
3.3 如果存在目标节点:
3.3.1 创建子节点的 UI 是可用的,否则不可用
3.3.2 如果目标节点是根节点,则创建兄弟节点的 UI 是不可用的,否则是可用的
3.4 该交互只在常规模式下有效
4. `拖放到父节点` 交互
4.1 该交互只在常规模式下有效
4.2 在任意节点上 mousedown,并且移动10像素以上,确定拖放对象:
4.2.1 如果节点没被选中,则节点被选中,并且作为拖动对象
4.2.2 如果节点是被选中的,则所有选中的节点作为拖放对象
4.3 排除无效拖放对象:
4.3.1 如果存在一个拖放对象A和另一个拖放对象B,A是B的祖先,则B被排除
4.3.2 排除后剩余的对象成为真正的拖放对象
4.4 拖放对象表示为一个拖放图形,并且显示拖放对象的数量
4.5 拖放图形随鼠标移动,并且每次移动会判断是否遇到拖放目标:
4.5.1 拖放对象本身以及整棵子树都不能作为拖放目标
4.5.2 如果拖放图形和拖放目标的图形有重合,拖放目标会高亮,否则不会高亮
4.6 如果在遇到拖放目标的时候释放鼠标(mouseup),会让拖放对象成为拖放目标的子节点,并且:
4.6.1 保持之前拖放目标的选中状态
4.6.2 保证拖放目标的顺序与拖放之前保持一致
5. `画布导航` 交互
5.1 该交互只在拖动模式下有效
5.2 在任意位置鼠标按下(mousedown)之后画布可以随鼠标移动
5.3 鼠标释放(mouseup)之后画布不再随鼠标移动
5.4 按下方向键会让画布用动画朝反方向移动一定的距离
6. `画布缩放` 交互
6.1 在非文本编辑模式下,点击 `+` 和 `-` 分别可以拉近视野(放大画布)和拉远视野(缩小画布)
6.2 在任意模式下,使用鼠标滚轮可以缩放视野
6.2.1 往上滚动拉近视野
6.2.3 往下滚动拉远视野
6.3 在任意模式下,UI 上的 zoom-in 和 zoom-out 分别可以拉近视野和拉远视野
6.4 视野拉远和拉近都有最值,不能无限操作;当每个操作不可用的时候,UI 上的按钮呈不可用状态
7. `文本框选` 和 `文本编辑` 和默认行为一致即可
8. `字体样式` 功能
8.1 该功能在 `拖放模式` 下不可用
8.2 包括的子功能:
8.2.1 加粗
8.2.2 斜体
8.2.3 字体
8.2.4 字号
8.2.5 颜色
8.3 所有的子功能以节点为单位设置和读取
8.4 对于选中的节点在 UI 上应该反映当前的样式状态
8.5 UI 上设置样式针对所有选中的节点生效
8.6 没有选中节点的时候,UI 上的功能按钮应该呈不可用状态
9. `子节点收缩功能`
9.1 在一级节点及以上,如果存在子节点,显示收缩功能的图标,否则不显示
9.2 收缩图标显示 `-` 的时候,子节点显示;收缩图标显示 `+` 的时候,子节点不显示;点击图标切换这两种状态
10. `节点删除功能`
10.1 目标节点的计算方法同拖放到父节点的拖放目标的计算方法
10.2 如果目标节点包含根,把根从目标节点中移除
10.3 如果包含删除目标,删除操作的 UI 是可用的,否则是不可用的
10.4 把所有目标节点从其父节点中移除
11. `标签功能`
11.1 对于选中的节点,点击优先级标签和完成度标签可以在节点文本前添加标签图形
11.2 对于同一类的标签,只能添加一个标签
11.3 选中单个节点的时候,标签面板显示选中节点的当前标签;
11.4 多选的情况下,如果标签一致以任意一个节点为准来显示状态;标签不一致显示所有包含的状态
12. `导入导出功能`
12.1 导出数据应该能下载一个文件
12.2 下载的文件拖动到画布上,可以还原原来的数据
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment