Packagecom.kapit.diagram.model
Classpublic class DiagramModel

This class defines which data proxy to use for binding diagram object with application data object.

Data binding from diagram objects to application data uses proxies.

To enable binding, a developer must create sprite proxy classes implementing ISpriteProxy interface and link proxy classes implementing ILinkProxy interface.

Then he must create a XML configuration document that links spriteid, links and proxies.

Then he must create a DiagramModel with the XML configuration document and define it as the model of the DiagramView.

When this plumbery is done, everytime a sprite or a link is created, deleted or changed, the corresponding method of the corresponding proxy is called.

On the opposite it is the responsibility of the developer to implements application data manipulation so that application data reflects the states of the diagram.


Example
This sample show how to define a model. MyFirstObjectProxy and MySecondObjectProxy implements ISpriteProxy, MyLinkProxy implements ILinkProxy, MyLaneProxy and MyPanelProxy implements IObjectProxy.
 <?xml version="1.0" encoding="utf-8"?>
 <mx:Application ...
 ...
 <mx:XML xmlns="" id="diagramMappings">
 <mappings>
 <sprite id="myfirstshapeid" width="40" height="40" proxyclass="MyFirstObjectProxy" />
 <sprite id="mysecondshapeid" width="40" height="40" proxyclass="MySecondObjectProxy" />
 <lane proxyclass="MyLaneProxy" />
 <panel proxyclass="MyPanelProxy" />
 <lanelink proxyclass="MyLinkProxy" />
 <panellink proxyclass="MyLinkProxy" />
 <viewlink proxyclass="MyLinkProxy" />
 </mappings>
 </mx:XML>
 ...
 <mx:Script>
 <![CDATA[
 ...
 public function initDiagram():void
 {
 ...
 var model:DiagramModel=new DiagramModel(diagramMappings);
 diagram.model=model;
 ...
 }
 ...
 ]]>
 </mx:Script>
 ...
 <diagview:DiagramView id="diagram" creationComplete="initDiagram();" >
 </diagview:DiagramView>
 ...
 

See also

IObjectProxy
ISpriteProxy
ILinkProxy
com.kapit.diagram.view.DiagramView.model


Public Properties
 PropertyDefined by
  view : DiagramView
DiagramModel
Protected Properties
 PropertyDefined by
  _lanelinkmodel : DiagramLinkModelEntry
DiagramModel
  _lanemodel : DiagramModelEntry
DiagramModel
  _modelentries : Object
DiagramModel
  _panellinkmodel : DiagramLinkModelEntry
DiagramModel
  _panelmodel : DiagramModelEntry
DiagramModel
  _view : DiagramView
DiagramModel
  _viewlinkmodel : DiagramLinkModelEntry
DiagramModel
Public Methods
 MethodDefined by
  
DiagramModel(xml:XML)
DiagramModel
  
DiagramModel
  
DiagramModel
  
acceptPropertyModification(el:IDiagramElement, propname:String, propvalue:String, shapeid:*):Boolean
DiagramModel
  
DiagramModel
  
DiagramModel
  
DiagramModel
  
DiagramModel
  
DiagramModel
  
getDefaultSize(spriteid:String):Point
DiagramModel
  
DiagramModel
  
getProxyClass(classname:String):Class
DiagramModel
  
DiagramModel
  
preAcceptLinkSource(spriteid:String, sourcespriteid:String, source:IDiagramElement):Boolean
DiagramModel
  
preAcceptLinkTarget(spriteid:String, targetspriteid:String, source:IDiagramElement):Boolean
DiagramModel
  
propertyModified(el:IDiagramElement, propname:String, propvalue:String, shapeid:*):void
DiagramModel
  
DiagramModel
  
scopeChanged(link:DiagramLink, oldscope:String):void
DiagramModel
Protected Methods
 MethodDefined by
  
buildFromXML(xml:XML):void
DiagramModel
  
DiagramModel
  
DiagramModel
Property detail
_lanelinkmodelproperty
protected var _lanelinkmodel:DiagramLinkModelEntry
_lanemodelproperty 
protected var _lanemodel:DiagramModelEntry
_modelentriesproperty 
protected var _modelentries:Object
_panellinkmodelproperty 
protected var _panellinkmodel:DiagramLinkModelEntry
_panelmodelproperty 
protected var _panelmodel:DiagramModelEntry
_viewproperty 
protected var _view:DiagramView
viewproperty 
view:DiagramView  [read-write]Implementation
    public function get view():DiagramView
    public function set view(value:DiagramView):void
_viewlinkmodelproperty 
protected var _viewlinkmodel:DiagramLinkModelEntry
Constructor detail
DiagramModel()constructor
public function DiagramModel(xml:XML)Parameters
xml:XML
Method detail
acceptLinkSource()method
public function acceptLinkSource(el:IDiagramElement, source:IDiagramElement):BooleanParameters
el:IDiagramElement
 
source:IDiagramElement

Returns
Boolean
acceptLinkTarget()method 
public function acceptLinkTarget(el:IDiagramElement, target:IDiagramElement):BooleanParameters
el:IDiagramElement
 
target:IDiagramElement

Returns
Boolean
acceptPropertyModification()method 
public function acceptPropertyModification(el:IDiagramElement, propname:String, propvalue:String, shapeid:*):BooleanParameters
el:IDiagramElement
 
propname:String
 
propvalue:String
 
shapeid:*

Returns
Boolean
acceptRemoveObject()method 
public function acceptRemoveObject(el:IDiagramElement):BooleanParameters
el:IDiagramElement

Returns
Boolean
allowLinkAction()method 
public function allowLinkAction(el:IDiagramElement):BooleanParameters
el:IDiagramElement

Returns
Boolean
buildFromXML()method 
protected function buildFromXML(xml:XML):voidParameters
xml:XML
columnChanged()method 
public function columnChanged(el:IDiagramElement, column:DiagramColumn):voidParameters
el:IDiagramElement
 
column:DiagramColumn
createDataObject()method 
public function createDataObject(el:IDiagramElement):StringParameters
el:IDiagramElement

Returns
String
dataObjectLoaded()method 
public function dataObjectLoaded(el:IDiagramElement):voidParameters
el:IDiagramElement
getDefaultSize()method 
public function getDefaultSize(spriteid:String):PointParameters
spriteid:String

Returns
Point
getDiagramElementModel()method 
protected function getDiagramElementModel(el:IDiagramElement):DiagramModelEntryParameters
el:IDiagramElement

Returns
DiagramModelEntry
getDiagramElementProxy()method 
protected function getDiagramElementProxy(el:IDiagramElement):IObjectProxyParameters
el:IDiagramElement

Returns
IObjectProxy
getDiagramSpriteProxy()method 
public function getDiagramSpriteProxy(spriteid:String):ISpriteProxyParameters
spriteid:String

Returns
ISpriteProxy
getProxyClass()method 
public function getProxyClass(classname:String):ClassParameters
classname:String

Returns
Class
laneChanged()method 
public function laneChanged(el:IDiagramElement, lane:DiagramLane):voidParameters
el:IDiagramElement
 
lane:DiagramLane
preAcceptLinkSource()method 
public function preAcceptLinkSource(spriteid:String, sourcespriteid:String, source:IDiagramElement):BooleanParameters
spriteid:String
 
sourcespriteid:String
 
source:IDiagramElement

Returns
Boolean
preAcceptLinkTarget()method 
public function preAcceptLinkTarget(spriteid:String, targetspriteid:String, source:IDiagramElement):BooleanParameters
spriteid:String
 
targetspriteid:String
 
source:IDiagramElement

Returns
Boolean
propertyModified()method 
public function propertyModified(el:IDiagramElement, propname:String, propvalue:String, shapeid:*):voidParameters
el:IDiagramElement
 
propname:String
 
propvalue:String
 
shapeid:*
removeDataObject()method 
public function removeDataObject(el:IDiagramElement):voidParameters
el:IDiagramElement
scopeChanged()method 
public function scopeChanged(link:DiagramLink, oldscope:String):voidParameters
link:DiagramLink
 
oldscope:String