CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
Vispa.Share.ObjectHolder.ObjectHolder Class Reference
Inheritance diagram for Vispa.Share.ObjectHolder.ObjectHolder:
Vispa.Share.FindAlgorithm.FindAlgorithm Vispa.Views.AbstractView.AbstractView Vispa.Views.LineDecayView.DecayNode Vispa.Views.LineDecayView.LineDecayContainer Vispa.Plugins.EdmBrowser.EventContentView.EventContentView Vispa.Views.AbstractView.NoneView Vispa.Views.PropertyView.PropertyView Vispa.Views.RootCanvasView.RootCanvasView Vispa.Views.TableView.TableView Vispa.Views.TreeView.TreeView Vispa.Views.WidgetView.WidgetView Vispa.Plugins.ConfigEditor.CodeTableView.CodeTableView Vispa.Plugins.EdmBrowser.BranchTableView.BranchTableView Vispa.Views.BoxDecayView.BoxDecayView Vispa.Views.LineDecayView.LineDecayView Vispa.Plugins.ConfigEditor.ConfigEditorBoxView.ConfigEditorBoxView Vispa.Plugins.EdmBrowser.EdmBrowserBoxView.EdmBrowserBoxView Vispa.Plugins.ConfigEditor.ConfigEditorBoxView.ConnectionStructureView Vispa.Plugins.ConfigEditor.ConfigEditorBoxView.SequenceStructureView

Public Member Functions

def __init__
 
def allDataObjectChildren
 
def appendObject
 
def applyFilter
 
def clearObjects
 
def dataAccessor
 
def dataObject
 
def dataObjects
 
def dataObjectsCount
 
def numberDataObjectChildren
 
def removeObject
 
def setDataAccessor
 
def setDataObject
 
def setDataObjects
 
def setExclusiveMode
 
def setFilter
 

Private Member Functions

def _noFilter
 

Private Attributes

 _dataAccessor
 
 _dataObjects
 
 _exclusiveMode
 
 _filter
 

Detailed Description

Abstract class for holders of objects which are accessed via a data accessor.

Objects can be filtered using a filter function. 

Definition at line 3 of file ObjectHolder.py.

Constructor & Destructor Documentation

def Vispa.Share.ObjectHolder.ObjectHolder.__init__ (   self)

Member Function Documentation

def Vispa.Share.ObjectHolder.ObjectHolder._noFilter (   self,
  objects 
)
private
The default filter function for objects.

Definition at line 88 of file ObjectHolder.py.

88 
89  def _noFilter(self, objects):
90  """ The default filter function for objects.
91  """
92  return objects
def Vispa.Share.ObjectHolder.ObjectHolder.allDataObjectChildren (   self,
  objects = None 
)

Definition at line 102 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects, Vispa.Plugins.EdmBrowser.BranchTableView.BranchTableView.allDataObjectChildren(), Vispa.Share.ObjectHolder.ObjectHolder.allDataObjectChildren(), Vispa.Share.ObjectHolder.ObjectHolder.applyFilter(), Vispa.Share.ObjectHolder.ObjectHolder.dataAccessor(), and Vispa.Plugins.Browser.BrowserTabController.BrowserTabController.dataAccessor().

Referenced by Vispa.Share.ObjectHolder.ObjectHolder.allDataObjectChildren(), and Vispa.Views.TableView.TableView.updateContent().

103  def allDataObjectChildren(self,objects=None):
104  if objects==None:
105  objects=self._dataObjects[:]
106  for object in objects[:]:
107  objects+=self.allDataObjectChildren(self.applyFilter(self.dataAccessor().children(object)))
108  return objects
def Vispa.Share.ObjectHolder.ObjectHolder.appendObject (   self,
  object 
)
Appends object to lists of data objects.

Definition at line 60 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects, and Vispa.Share.ObjectHolder.ObjectHolder._exclusiveMode.

Referenced by Vispa.Views.LineDecayView.LineDecayContainer.addDecayLine(), Vispa.Views.LineDecayView.LineDecayContainer.addDecayNode(), and Vispa.Views.LineDecayView.DecayNode.unite().

60 
61  def appendObject(self, object):
62  """ Appends object to lists of data objects.
63  """
64  if not self._exclusiveMode or (self._exclusiveMode and object not in self._dataObjects):
65  self._dataObjects.append(object)
66  return object
def Vispa.Share.ObjectHolder.ObjectHolder.applyFilter (   self,
  objects 
)
Apply the filter to a list of objects.

This function should be used any time the view handles a list of objects
e.g. on self.dataObjects() or self.dataAccessor().children(object):
self.applyFilter(self.dataAccessor().children(object))

Definition at line 93 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._filter, Vispa.Gui.FindDialog.FindDialog._filter, and MELaserPrim._filter.

Referenced by Vispa.Views.TreeView.TreeView._createNode(), Vispa.Share.FindAlgorithm.FindAlgorithm._findIn(), Vispa.Share.ObjectHolder.ObjectHolder.allDataObjectChildren(), Vispa.Views.BoxDecayView.BoxDecayView.createBoxesRecursive(), Vispa.Views.LineDecayView.LineDecayContainer.createDecayObjectsFromPxlObject(), Vispa.Share.ObjectHolder.ObjectHolder.numberDataObjectChildren(), Vispa.Views.RootCanvasView.RootCanvasView.updateContent(), Vispa.Views.TreeView.TreeView.updateContent(), and Vispa.Views.BoxDecayView.BoxDecayView.updateContent().

93 
94  def applyFilter(self, objects):
95  """ Apply the filter to a list of objects.
96 
97  This function should be used any time the view handles a list of objects
98  e.g. on self.dataObjects() or self.dataAccessor().children(object):
99  self.applyFilter(self.dataAccessor().children(object))
100  """
101  return self._filter(objects)
def Vispa.Share.ObjectHolder.ObjectHolder.clearObjects (   self)
Removes all objects from this ObjectHolder.

Definition at line 78 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, and Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects.

78 
79  def clearObjects(self):
80  """ Removes all objects from this ObjectHolder.
81  """
82  self._dataObjects = []
def Vispa.Share.ObjectHolder.ObjectHolder.dataAccessor (   self)

Definition at line 29 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataAccessor, Vispa.Plugins.Browser.BrowserTabController.BrowserTabController._dataAccessor, and Vispa.Plugins.EdmBrowser.EventContentDialog.EventContentDialog._dataAccessor.

Referenced by Vispa.Plugins.ConfigEditor.CodeTableView.CodeTableView._createItem(), Vispa.Views.TreeView.TreeView._createNode(), Vispa.Share.FindAlgorithm.FindAlgorithm._findIn(), Vispa.Views.BoxDecayView.BoxDecayView._sortByRelations(), Vispa.Views.LineDecayView.LineDecayContainer.addDecayLine(), Vispa.Views.LineDecayView.LineDecayContainer.addParticleByType(), Vispa.Views.PropertyView.PropertyView.addProperty(), Vispa.Views.WidgetView.WidgetView.addWidget(), Vispa.Share.ObjectHolder.ObjectHolder.allDataObjectChildren(), Vispa.Views.BoxDecayView.BoxDecayContainer.autolayoutAlgorithm(), Vispa.Views.LineDecayView.LineDecayContainer.childContainer(), Vispa.Views.BoxDecayView.BoxDecayView.createBoxesRecursive(), Vispa.Views.BoxDecayView.BoxDecayView.createConnections(), Vispa.Views.LineDecayView.LineDecayContainer.createDecayObjectsFromPxlObject(), Vispa.Views.LineDecayView.DecayNode.delete(), Vispa.Share.FindAlgorithm.FindAlgorithm.findUsingFindDialog(), Vispa.Plugins.EdmBrowser.EdmBrowserBoxView.EdmBrowserBoxView.isUpdated(), Vispa.Plugins.EdmBrowser.EventContentView.EventContentView.itemByObject(), Vispa.Views.LineDecayView.LineDecayView.lineDecayContainer(), Vispa.Views.LineDecayView.LineDecayContainer.mouseReleaseEvent(), Vispa.Share.ObjectHolder.ObjectHolder.numberDataObjectChildren(), Vispa.Views.LineDecayView.LineDecayContainer.removeObject(), Vispa.Views.PropertyView.PropertyView.removeProperty(), Vispa.Plugins.EdmBrowser.EdmBrowserBoxView.EdmBrowserBoxView.selection(), Vispa.Plugins.EdmBrowser.BranchTableView.BranchTableView.selection(), Vispa.Views.LineDecayView.LineDecayContainer.setPxlObject(), Vispa.Views.LineDecayView.DecayNode.unite(), Vispa.Views.TreeView.TreeView.updateContent(), Vispa.Views.TableView.TableView.updateContent(), Vispa.Views.BoxDecayView.BoxDecayView.updateContent(), Vispa.Views.PropertyView.PropertyView.updateContent(), and Vispa.Views.PropertyView.PropertyView.valueChanged().

29 
30  def dataAccessor(self):
31  return self._dataAccessor
def Vispa.Share.ObjectHolder.ObjectHolder.dataObject (   self)
Return the first object.

This method is provided for e.g. views which show a single object.   

Definition at line 50 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder.dataObjects().

Referenced by Vispa.Views.PropertyView.PropertyView.addProperty(), Vispa.Views.PropertyView.PropertyView.removeProperty(), Vispa.Views.TreeView.TreeView.updateContent(), Vispa.Views.TableView.TableView.updateContent(), Vispa.Views.BoxDecayView.BoxDecayView.updateContent(), Vispa.Views.PropertyView.PropertyView.updateContent(), and Vispa.Views.PropertyView.PropertyView.valueChanged().

50 
51  def dataObject(self):
52  """ Return the first object.
53 
54  This method is provided for e.g. views which show a single object.
55  """
56  if len(self.dataObjects())>0:
57  return self.dataObjects()[0]
58  else:
59  return None
def Vispa.Share.ObjectHolder.ObjectHolder.dataObjects (   self)

Definition at line 39 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, and Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects.

Referenced by Vispa.Plugins.EdmBrowser.BranchTableView.BranchTableView.allDataObjectChildren(), Vispa.Views.LineDecayView.LineDecayContainer.autolayoutThreadFinished(), Vispa.Views.LineDecayView.LineDecayContainer.children(), Vispa.Views.LineDecayView.LineDecayContainer.childrenRect(), Vispa.Share.ObjectHolder.ObjectHolder.dataObject(), Vispa.Share.ObjectHolder.ObjectHolder.dataObjectsCount(), Vispa.Views.LineDecayView.LineDecayContainer.decayObject(), Vispa.Views.LineDecayView.DecayNode.delete(), Vispa.Share.FindAlgorithm.FindAlgorithm.findUsingFindDialog(), Vispa.Views.LineDecayView.LineDecayContainer.mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer.mousePressEvent(), Vispa.Views.LineDecayView.LineDecayContainer.mouseReleaseEvent(), Vispa.Views.LineDecayView.DecayNode.move(), Vispa.Views.LineDecayView.LineDecayContainer.removeObject(), Vispa.Views.LineDecayView.LineDecayContainer.select(), Vispa.Views.LineDecayView.LineDecayContainer.setZoom(), Vispa.Views.LineDecayView.DecayNode.unite(), Vispa.Views.RootCanvasView.RootCanvasView.updateContent(), Vispa.Views.TreeView.TreeView.updateContent(), Vispa.Views.BoxDecayView.BoxDecayView.updateContent(), and Vispa.Views.LineDecayView.LineDecayContainer.updateVisibleList().

39 
40  def dataObjects(self):
41  return self._dataObjects
def Vispa.Share.ObjectHolder.ObjectHolder.dataObjectsCount (   self)
Return number of data objects.

Definition at line 73 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder.dataObjects().

Referenced by Vispa.Views.LineDecayView.LineDecayContainer.autolayoutThreadFinished(), and Vispa.Views.LineDecayView.LineDecayContainer.sizeHint().

73 
74  def dataObjectsCount(self):
75  """ Return number of data objects.
76  """
77  return len(self.dataObjects())
def Vispa.Share.ObjectHolder.ObjectHolder.numberDataObjectChildren (   self,
  objects = None 
)

Definition at line 109 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects, Vispa.Share.ObjectHolder.ObjectHolder.applyFilter(), Vispa.Share.ObjectHolder.ObjectHolder.dataAccessor(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController.dataAccessor(), and Vispa.Share.ObjectHolder.ObjectHolder.numberDataObjectChildren().

Referenced by Vispa.Views.BoxDecayView.BoxDecayView.checkNumberOfObjects(), Vispa.Share.ObjectHolder.ObjectHolder.numberDataObjectChildren(), and Vispa.Views.LineDecayView.LineDecayView.updateContent().

110  def numberDataObjectChildren(self,objects=None):
111  if objects==None:
112  objects=self._dataObjects
113  number=len(objects)
114  for object in objects:
115  number+=self.numberDataObjectChildren(self.applyFilter(self.dataAccessor().children(object)))
116  return number
def Vispa.Share.ObjectHolder.ObjectHolder.removeObject (   self,
  object 
)
Removes object from list of data objects.

Definition at line 67 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, and Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects.

Referenced by Vispa.Views.LineDecayView.LineDecayContainer.addDecayLine(), Vispa.Views.LineDecayView.LineDecayContainer.keyPressEvent(), and Vispa.Views.LineDecayView.LineDecayContainer.mouseReleaseEvent().

67 
68  def removeObject(self, object):
69  """ Removes object from list of data objects.
70  """
71  if object in self._dataObjects:
72  self._dataObjects.remove(object)
def Vispa.Share.ObjectHolder.ObjectHolder.setDataAccessor (   self,
  accessor 
)
Sets the DataAccessor from which the nodes are created.

You need to call updateContent() in order to make the changes visible.   

Definition at line 22 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataAccessor, Vispa.Plugins.Browser.BrowserTabController.BrowserTabController._dataAccessor, and Vispa.Plugins.EdmBrowser.EventContentDialog.EventContentDialog._dataAccessor.

22 
23  def setDataAccessor(self, accessor):
24  """ Sets the DataAccessor from which the nodes are created.
25 
26  You need to call updateContent() in order to make the changes visible.
27  """
28  self._dataAccessor = accessor
def Vispa.Share.ObjectHolder.ObjectHolder.setDataObject (   self,
  object 
)
Sets the one object that shall be shown.

This method is provided for e.g. views which show a single object.   
You need to call updateContent() in order to make the changes visible.

Definition at line 42 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, and Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects.

42 
43  def setDataObject(self, object):
44  """ Sets the one object that shall be shown.
45 
46  This method is provided for e.g. views which show a single object.
47  You need to call updateContent() in order to make the changes visible.
48  """
49  self._dataObjects = [object]
def Vispa.Share.ObjectHolder.ObjectHolder.setDataObjects (   self,
  objects 
)
Sets the objects that shall be shown.

You need to call updateContent() in order to make the changes visible.   

Definition at line 32 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._dataObjects, and Vispa.Plugins.EdmBrowser.EdmDataAccessor.EdmDataAccessor._dataObjects.

32 
33  def setDataObjects(self, objects):
34  """ Sets the objects that shall be shown.
35 
36  You need to call updateContent() in order to make the changes visible.
37  """
38  self._dataObjects = objects
def Vispa.Share.ObjectHolder.ObjectHolder.setExclusiveMode (   self,
  exclusive = True 
)
Sets exclusive mode to given value.

If exclusive mode is set to True objects will only appear once in the list of objects if they are added using appendObject.

Definition at line 15 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._exclusiveMode.

Referenced by Vispa.Views.LineDecayView.DecayNode.__init__().

15 
16  def setExclusiveMode(self, exclusive=True):
17  """ Sets exclusive mode to given value.
18 
19  If exclusive mode is set to True objects will only appear once in the list of objects if they are added using appendObject.
20  """
21  self._exclusiveMode = exclusive
def Vispa.Share.ObjectHolder.ObjectHolder.setFilter (   self,
  filter 
)
Set the filter function used in the view.

Definition at line 83 of file ObjectHolder.py.

References Vispa.Share.ObjectHolder.ObjectHolder._filter, Vispa.Gui.FindDialog.FindDialog._filter, and MELaserPrim._filter.

83 
84  def setFilter(self, filter):
85  """ Set the filter function used in the view.
86  """
87  self._filter = filter

Member Data Documentation

Vispa.Share.ObjectHolder.ObjectHolder._dataAccessor
private

Definition at line 10 of file ObjectHolder.py.

Referenced by Vispa.Share.ObjectHolder.ObjectHolder.dataAccessor(), and Vispa.Share.ObjectHolder.ObjectHolder.setDataAccessor().

Vispa.Share.ObjectHolder.ObjectHolder._dataObjects
private

Definition at line 11 of file ObjectHolder.py.

Referenced by Vispa.Share.ObjectHolder.ObjectHolder.allDataObjectChildren(), Vispa.Share.ObjectHolder.ObjectHolder.appendObject(), Vispa.Share.ObjectHolder.ObjectHolder.clearObjects(), Vispa.Share.ObjectHolder.ObjectHolder.dataObjects(), Vispa.Views.LineDecayView.LineDecayContainer.dataObjects(), Vispa.Share.ObjectHolder.ObjectHolder.numberDataObjectChildren(), Vispa.Share.ObjectHolder.ObjectHolder.removeObject(), Vispa.Share.ObjectHolder.ObjectHolder.setDataObject(), and Vispa.Share.ObjectHolder.ObjectHolder.setDataObjects().

Vispa.Share.ObjectHolder.ObjectHolder._exclusiveMode
private

Definition at line 13 of file ObjectHolder.py.

Referenced by Vispa.Share.ObjectHolder.ObjectHolder.appendObject(), and Vispa.Share.ObjectHolder.ObjectHolder.setExclusiveMode().

Vispa.Share.ObjectHolder.ObjectHolder._filter
private

Definition at line 12 of file ObjectHolder.py.

Referenced by Vispa.Share.ObjectHolder.ObjectHolder.applyFilter(), and Vispa.Share.ObjectHolder.ObjectHolder.setFilter().