artisynth: navigation panel & selection manager
TRANSCRIPT
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
1/17
Artisynth:
Navigation Panel &
Selection Manager
Software Design Overview
Version 1.0
April 27th, 2006
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
2/17
Revisions
Version PrimaryAuthor(s)
Description of Version DateCompleted
1.0 Chad Decker Initial version of the design overview
document.
April. 27,
200
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
3/17
Table of Contents
1.1 System Overview................................................................................................................................. 4
1.2 Supporting Materials............................................................................................................................42.1 Operational Context............................................................................................................................. 6
2.2 Mainrame........................................................................................................................................... 6
!.1 Overview............................................................................................................................................10
!.2 "#e $avigation %anel in &ept# ..........................................................................................................10!.2.1 '"ree .......................................................................................................................................... 11
!.2.2 $av%anelMuta(le"ree$o&e....................................................................................................... 11
!.2.2 Component)nfo...........................................................................................................................11!.2.! "ree$o&eSele*tion+istener........................................................................................................ 12
!.2.!.1 Sele*te&%at#sManager.............................................................................................................12
!.! "#e Sele*tion Manager in &ept#........................................................................................................ 1!!.!.1 Sele*tionManager.......................................................................................................................1!
!.!.1.1 Sele*tion ,an&ler.................................................................................................................... 14
!.!.1.2 Sele*tion -in&ow /n&er Development............................................................................... 14!.!.2 %oea(le%opup........................................................................................................................... 1
!.!.! %opup3euest+istener................................................................................................................164.1 Con*lusion......................................................................................................................................... 15
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
4/17
1 Introduction
1.1 System Overview
Arti!"nth is a modular component#$ased s"stem for performing d"namical %D
simulations of the human vocal tract and face. It is intended to provide a test$ed foranatomical modeling and acoustic research in areas such as speech s"nthesis,
linguistics, medicine, and dentistr". &he framework provided $" the s"stem ena$les
researchers to construct, refine, and e'change models of rigid $odies (such as $one)
and soft tissues (such as a tongue), and integrate these into a comprehensive model
of the vocal tract and surrounding structures. Arti!"nth provides $ase support for a
variet" of parametric and d"namic models, including rigid $odies, mass#spring and
finite element models, and spline#$ased curves and shapes.
Artis"nth provides an A*I for model creation, along with a driver application forviewing and controlling the d"namical simulation of models. &his specification
document discusses revisions which were made to the +ser Interaction framework to
allow for model traversal, selection, and editing through two main su$s"stems the
-avigation *anel, and !election anager.
1.2 Supporting Materials
*resentation on Artis"nth
/httpwww.artis"nth.orge'terndocA!*#200#2.pdf3.
Artis"nth
/httpwww.artis"nth.org3.
4ikipedia, Design *atterns
/httpen.wikipedia.orgwikiDesign5*atterns3.
!un icros"stems, Class 6&ree
/httpava.sun.com2se1.8.2docsapiava'swing6&ree.html3.
http://www.jboss.com/products/jbpmhttp://www.simplyefficient.ca/http://www.simplyefficient.ca/http://www.jboss.com/products/jbpm -
8/13/2019 Artisynth: Navigation Panel & Selection Manager
5/17
2 High Level Design Summary
Figure 1.0 UML Diagram of the SelectionManager and NavigationPanel operational context.
Split%ane
Main
Mainrame
Menuar,an&ler
7+Viewer%anel $avigation%anel
8Singleton9
%ro(e:&itorSele*tionManager
8Singleton9
Console
'"ree"ree$o&e
Sele*tion+istener
$av%anelMuta(le
"ree$o&e
Component)nfo
Sele*te&%at#s
Manager
Sele*tion
,an&ler
Sele*tion
-in&ow
%oea(le%opup
Mo&ify%oeDialog
Mo&ify3en&er%oeDialog
-i&getCreator 3en&er%rops
%anel
%opup3euest
+istener
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
6/17
2.1 Operational onte!t
9igure 1.0 a$ove shows the current placement of the -avigation*anel and !election
anager *ackages within the Artis"nth framework. ainframe, which is the main
viewer for Artis"nth consists of three main components the enu:ar;andler,
ditor, and Console modules hook into the
!electionanager, and ain9rame o$ects respectivel", to offer e'tended s"stem
functionalit".
2.2 Main"rame
Figure 2.0 mage of MainFrame
9igure 2.0 shows the three principle components in ain9rame, on the left is the
-avigation *anel which scans and presents the unit components of the %D model
which is shown graphiall" to the right in the
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
7/17
like the
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
8/17
centraliBed point for selection handling, where different selection mechanisms can
send notifications of o$ects $eing selected, and the change is reflected in the other
selection mechanisms. 9igure 2.2 $elow shows the updating of the -avigation *anel
taking place when o$ects in the
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
9/17
Figure 2.$ Popup menu compo#ed %& the Selection Manager.
Figure 2.' Popup menu compo#ed %& the Selection Manager inter#ecting common propertie#.
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
10/17
# Low Level Design Summary
&he section provides a low level overview of the -avigation *anel and !election
anager packages.
#.1 Overview
&he following selections discuss the inter workings of the -avigation*anel, and
!electionanager packages. &he -avigation*anel consists of two main
functionalities, first the generation and displa" of the model components, and
second the action handling which takes place then nodes in the tree are selected.
&he !election manager consists of two main functionalities first providing a
centraliBed o$ect for selection mechanisms such as -avigation*anel and
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
11/17
9igure %.0 a$ove shows the decomposition of the -avigation *anel into principle
components, this selection provides a description of responsi$ilities and
implementation for each of these classes.
3.2.1 JTree
Description &he 6&ree is s 6ava !wing Component which allows the displa" of
hierarchical data. &he 6tree o$ect doesn?t actuall" contain the data $ut simpl"
provides a view of the data. =ike an" non#trivial !wing component, the tree gets data
$" uer"ing its data model.
Implementation &he data in the 6&ree is organiBed in a nodal fashion with each
element $eing a muta$le tree node. In the -avigation*anel, a wrapper class for these
nodes are used to em$ed additional operational information in the nodes.
3.2.2 NavPanelMutale!reeNode
Description &he -av*aneluta$le&ree-ode is a wrapper o$ect for 6ava?s
Defaultuta$le&ree-ode with added information which is used to determine state
information for the e'pansioncollapse of collections of anon"mous model
component collections.
Implementation !tate information such as if the node, as a categor", contains an
anon"mous o$ect (either a model component or a collection of model components)
is stored here. &his allows the uer"ing of categories when selected to see if the*opup option to e'pandcollapse categories is displa"ed to a user.
3.2.2 Component"nfo
Description &he ComponentInfo is an o$ect which is em$edded in the
-av*aneluta$le&ree-ode, that when selected, is passed to the !electionanager. It
serves as a wrapper class for two t"pes of o$ects, Artis"nth odelComponent
o$ects or -av*aneluta$le&ree-ode o$ects, as discussed a$ove in %.2.2. In the
case of odelComponent the ComponentInfo class offers a routine to e'tract a
listing of odelComponent?s ph"sical and rendera$le properties.
Implementation *ointed to $" the -av*aneluta$le&ree-ode, the ComponentInfo?s
to!tring function contains the name which is displa"ed in the 6&ree, as currentl"
assigned $" the -avigation*anel. &he o$ect inside, either a odelComponent
o$ects or -av*aneluta$le&ree-ode o$ects are used in two fashions to manipulate
the appearance of the tree, and for o$ect passing when a selection is made which
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
12/17
are discussed in section %.2.%.
3.2.3 !reeNode#election$istener
Description
Implementation
&o manipulate the appearance of the tree, specificall" with the collapsing, and
e'pansion of Anon"mous Collections of odelComponents, the
-av*aneluta$le&ree-ode of the node which contains the anon"mous child nodes is
used $" the -avigaion*anel to manipulate the structure of the 6&ree a$out this node.
4hen components are selected using the
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
13/17
#.# $he Selection Manager in depth
&he !election manager has two main responsi$ilities to provide a centraliBed o$ect
for selection mechanisms to interact with one another, and to manage the
*okea$le*opup propert" editor window.
Figure $.1 Selection Manager)# interaction !ith Selection Mechani#m# #uch a# the *L+ie!Panel, and(reeNodeSelection Li#tener
3.3.% #electionMana&er
Description As shown amove in 9igure %.1, the !election manager emplo"s a
ediator pattern, $" which the various selection mechanisms, can notif" the
anager, of the changes, and the selection manager delegates this information to
other selection mechanisms, and the *okea$le*opup window accordingl".
Implementation &he components of the model which are selected are maintained in
a linked list structure of odelComponents called m"!electedItems.
7+Viewer%anel
$avigation%anel
8Singleton9
Sele*tionManager
8Singleton9
"ree$o&e
Sele*tion+istener
Sele*te&%at#s
Manager
Sele*tion
,an&ler
Sele*tion
-in&ow
%oea(le%opup
Mo&ify%oe
Dialog
Mo&ify3en&er
%oeDialog
-i&getCreator
3en&er%rops
%anel
%opup3euest
+istener
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
14/17
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
15/17
Figure $.2 Selection Manager)# Selection -indo! #ho!ing the "omponent# !hich are currentlelected through interaction# !ith %oth the Navigation Panel, and *L+i!erPanel.
3.3.2 Po'ealePopup
Description &he *okea$le*opup o$ect is a popup window which displa"s the
selecta$le options of the components which are currentl" selected. In the case of
multiple components, the *okea$le*opup o$ect will compute the intersection of the
common options for the o$ects selected, as shown in figure 2.8. &he
*okea$le*opup o$ect is also responsi$le for handling the selection made $" the user
and creating the corresponding modification dialog as show in figure %.1.
Implementation &he *okea$le*opup o$ect is created and maintained $" the
!electionanager. 4hen the !electionanager is informed of a selection, or
deselection, the !electionanager notifies the *okea$le*opup of the revised list of
selected lists, and informs it to modif" the popup options accordingl". &he
*okea$le*opup window decides which options are e'posed when the
loadComponents method is called. &he *okea$le*opup o$ect is an e'tension of the
6popupenu, and is activated $" the *opupEeuest=istener when a right click occurs
as desri$e $elow in section %.%.%.
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
16/17
-
8/13/2019 Artisynth: Navigation Panel & Selection Manager
17/17
' Design Summary
4.1 Conclusion
*revious to the addition of the two su$s"stems, the -avigation *anel and !electionanager, Artis"nth was a s"stem where propert" editing was limited to a
programmer manuall" editing code to change values within a model. 4ith the
e'tension of these new su$s"stems, a user, without programming e'perience, can
interact with models d"namicall" $" changing component properties such as mass,
velocit" and tension, and revisting the simulation instinateneousl". In addition, the
-avigation*anel provides the user the a$ilit" to traverse through the model
components and, com$ined with the !election anager, provides a uniform
mechanism for model component selection and editing.&hese two su$s"stems offer a framework in which the s"stem can $e e'panded to
offer features such as the creation, attachment and deletion of model components,
which will ensure that Artis"nth will continue to $e an essential tool for anatomical
modeling and acoustic research in areas such as speech s"nthesis, linguistics,
medicine, and dentistr".