cz.cuni.pogamut.shed.presenter
Class ExpandedActionPresenter

Package class diagram package ExpandedActionPresenter
java.lang.Object
  extended by cz.cuni.pogamut.shed.presenter.ExpandedActionPresenter
All Implemented Interfaces:
IPresenter

public class ExpandedActionPresenter
extends Object
implements IPresenter

Presenter to update expanded attachment representation of the SlotEnvelope. The SlotEnvelope wants accurate representation of its attachment. The attachment by itself is a string identifier (in the lap tree represented by TriggeredAction) that can reference to ActionPattern or Competence of the plan. When it does reference them, we want to see the visual representation of the AP/C. If it doesn't reference them, it is plain action that is executed by the IWorkExecutor. Since this is an editor, many things can change, e.g. the attachment doesn't reference anything in the begiinning and then AP is added with same identifier. In such case we need to update the atatchment. That is what this presenter does. This presenter listenes to all AP/C for name change, on DC for adding/removing AP/C (in such case, we add/remove listener for name) and finally we listen on the attachment action itself for name change.

Author:
Honza H

Field Summary
protected  ShedPresenter presenter
          Presenter that is mainly used to modify the scene
protected  ShedScene scene
          Scene this presenter is modifying.
 
Constructor Summary
ExpandedActionPresenter(ShedScene scene, ShedPresenter presenter, ExpandedActionEnvelope envelope, TriggeredAction action, LapChain chain)
          Create new presenter for updating the attachment in the SlotEnvelope.
 
Method Summary
protected  TriggeredAction extractAction(List<TriggeredAction> actions, PoshElement action)
           
protected  ActionPattern extractActionPattern(List<ActionPattern> actionPatterns, PoshElement actionPattern)
          Assert that @actionPattern is in the @actionPatterns and return it.
protected  Competence extractCompetence(List<Competence> competences, PoshElement competence)
          Assert that @competence is in the @competences and return it.
protected  DriveElement extractDrive(List<DriveElement> drives, PoshElement drive)
           
protected  CompetenceElement extractChoice(List<CompetenceElement> choices, PoshElement choice)
          Assert that @choice is in the @choices and return it.
protected  Sense extractSense(Trigger<?> trigger, PoshElement sense)
          Assert that sense is a part of the trigger and return it.
 AbstractAcceptAction[] getAcceptProviders()
          Get array of accept providers of this
 org.netbeans.api.visual.action.WidgetAction getEditAction()
          Get edit action that will be invoked upon double click.
 Action[] getMenuActions()
          Get(create) actions that should be displayed in the context menu of the widgets that use this presenter.
protected
<T extends PoshElement>
int
getPosition(List<T> list, T element)
          Get position of the element in the list.
protected  boolean isAction(PoshElement element)
           
protected  boolean isActionPattern(PoshElement element)
          Is the element ActionPattern?
protected  boolean isCompetence(PoshElement element)
          Is the element Competence?
protected  boolean isDrive(PoshElement element)
           
protected  boolean isChoice(PoshElement element)
          Is the element CompetenceElement?
protected  boolean isSense(PoshElement element)
          Is passed element a Sense?
 void register()
          Register its listeners into the lap tree.
 void replaceExpandedAction(TriggeredAction actionToExpand)
          Must call Scene.validate() at the end.
 void unregister()
          Unregister its listeners that were registered in the IPresenter.register() method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface cz.cuni.pogamut.shed.presenter.IPresenter
getAcceptProviders
 

Field Detail

scene

protected final ShedScene scene
Scene this presenter is modifying.


presenter

protected final ShedPresenter presenter
Presenter that is mainly used to modify the scene

Constructor Detail

ExpandedActionPresenter

public ExpandedActionPresenter(ShedScene scene,
                               ShedPresenter presenter,
                               ExpandedActionEnvelope envelope,
                               TriggeredAction action,
                               LapChain chain)
Create new presenter for updating the attachment in the SlotEnvelope.

Parameters:
scene - Scene the @envelope is in and the one where attachment will be.
presenter - Main presenter.
envelope - Envelope for displaying the attachment.
action - Basically reference to ActionPattern or Competence. This action is used to determine what attachment will be displayed. When its name is changed, presenter will reflect that.
chain - Chain up to the branch node right before the @action (@action is not included in the chain.).
Method Detail

register

public void register()
Description copied from interface: IPresenter
Register its listeners into the lap tree. Presenter must react to wide array of events in the tree. E.g. expanded action must listen not only to the name property of the action, but also to all competences and AP in the tree.

Specified by:
register in interface IPresenter

unregister

public void unregister()
Description copied from interface: IPresenter
Unregister its listeners that were registered in the IPresenter.register() method.

Specified by:
unregister in interface IPresenter

getMenuActions

public Action[] getMenuActions()
Description copied from interface: IPresenter
Get(create) actions that should be displayed in the context menu of the widgets that use this presenter.

Specified by:
getMenuActions in interface IPresenter
Returns:
Actions that will be in the menu or null for no menu.

replaceExpandedAction

public void replaceExpandedAction(TriggeredAction actionToExpand)
Must call Scene.validate() at the end.


getEditAction

public org.netbeans.api.visual.action.WidgetAction getEditAction()
Description copied from interface: IPresenter
Get edit action that will be invoked upon double click.

Specified by:
getEditAction in interface IPresenter
Returns:
Edit action for the widget that is being represented. If null, no edit action.

isSense

protected final boolean isSense(PoshElement element)
Is passed element a Sense?

Parameters:
element - element to check.
Returns:
true if element is sense, false if not.

extractSense

protected final Sense extractSense(Trigger<?> trigger,
                                   PoshElement sense)
Assert that sense is a part of the trigger and return it.

Parameters:
trigger - Trigger against which the method is testing.
sense - tested sense
Returns:
properly typed sense

isAction

protected final boolean isAction(PoshElement element)

extractAction

protected final TriggeredAction extractAction(List<TriggeredAction> actions,
                                              PoshElement action)

isDrive

protected final boolean isDrive(PoshElement element)

extractDrive

protected final DriveElement extractDrive(List<DriveElement> drives,
                                          PoshElement drive)

isChoice

protected final boolean isChoice(PoshElement element)
Is the element CompetenceElement?

Parameters:
element - Tested element
Returns:
true if the @element is CompetenceElement or its subclass, false otherwise.

extractChoice

protected final CompetenceElement extractChoice(List<CompetenceElement> choices,
                                                PoshElement choice)
Assert that @choice is in the @choices and return it.

Parameters:
choices - List of choices that must contain the @choice.
choice - Choice must be contained in the @choices
Returns:
Properly casted @choice.

isActionPattern

protected final boolean isActionPattern(PoshElement element)
Is the element ActionPattern?

Parameters:
element - Tested element
Returns:
true if the @element is ActionPattern or its subclass, false otherwise.

extractActionPattern

protected final ActionPattern extractActionPattern(List<ActionPattern> actionPatterns,
                                                   PoshElement actionPattern)
Assert that @actionPattern is in the @actionPatterns and return it. Basically a checked type conversion from PoshElement to ActionPattern.

Parameters:
actionPatterns - List of ActionPatterns that must contain the @actionPattern.
actionPattern - The ActionPattern that must be contained in the @actionPatterns
Returns:
Properly casted @actionPattern.

isCompetence

protected final boolean isCompetence(PoshElement element)
Is the element Competence?

Parameters:
element - Tested element
Returns:
true if the @element is Competence or its subclass, false otherwise.

extractCompetence

protected final Competence extractCompetence(List<Competence> competences,
                                             PoshElement competence)
Assert that @competence is in the @competences and return it. Basically a checked type conversion from PoshElement to Competence.

Parameters:
competences - List of Competences that must contain the
competence - The Competence that must be contained in the
Returns:
Properly casted @competence.

getPosition

protected final <T extends PoshElement> int getPosition(List<T> list,
                                                        T element)
Get position of the element in the list.

Type Parameters:
T - Type of element
Parameters:
list - list in which we determine position of the elemnt.
element - The element for whic we want position in the list. Must be there, otherwise assert error.
Returns:
Found position.

getAcceptProviders

public AbstractAcceptAction[] getAcceptProviders()
Description copied from interface: IPresenter
Get array of accept providers of this

Specified by:
getAcceptProviders in interface IPresenter
Returns:
Array of accept providers. If null, no accept provider.


Copyright © 2013 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.