artisynth: navigation panel & selection manager

Upload: globalknowledge

Post on 04-Jun-2018

214 views

Category:

Documents


0 download

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".