CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
Vispa.Plugins.EdmBrowser.EventContentView.EventContentView Class Reference
Inheritance diagram for Vispa.Plugins.EdmBrowser.EventContentView.EventContentView:
Vispa.Views.AbstractView.AbstractView Vispa.Share.ObjectHolder.ObjectHolder

Public Member Functions

def __init__ (self, parent=None, name=None)
 
def clear (self)
 
def itemByObject (self, object)
 
def select (self, item)
 
def updateContent (self)
 
- Public Member Functions inherited from Vispa.Views.AbstractView.AbstractView
def __init__ (self)
 
def cancel (self)
 
def isBusy (self)
 
def restoreSelection (self)
 
def select (self, object)
 
def selection (self)
 
def updateContent (self)
 
- Public Member Functions inherited from Vispa.Share.ObjectHolder.ObjectHolder
def __init__ (self)
 
def allDataObjectChildren (self, objects=None)
 
def appendObject (self, object)
 
def applyFilter (self, objects)
 
def clearObjects (self)
 
def dataAccessor (self)
 
def dataObject (self)
 
def dataObjects (self)
 
def dataObjectsCount (self)
 
def numberDataObjectChildren (self, objects=None)
 
def removeObject (self, object)
 
def setDataAccessor (self, accessor)
 
def setDataObject (self, object)
 
def setDataObjects (self, objects)
 
def setExclusiveMode (self, exclusive=True)
 
def setFilter (self, filter)
 

Private Member Functions

def _addRow (self, names, items)
 

Private Attributes

 _eventContentsList
 
 _itemDict
 
 _rows
 

Detailed Description

Holds a table to compare event contents.

Definition at line 9 of file EventContentView.py.

Constructor & Destructor Documentation

def Vispa.Plugins.EdmBrowser.EventContentView.EventContentView.__init__ (   self,
  parent = None,
  name = None 
)
Constructor 

Definition at line 12 of file EventContentView.py.

12  def __init__(self, parent=None, name=None):
13  """ Constructor """
14  logging.debug(self.__class__.__name__ + ": __init__()")
15  AbstractView.__init__(self)
16  QTableWidget.__init__(self, parent)
17 
18  self._itemDict = {}
19 
20  self.setSelectionMode(QTableWidget.SingleSelection)
21  self.clear() # Sets headers
22 

Member Function Documentation

def Vispa.Plugins.EdmBrowser.EventContentView.EventContentView._addRow (   self,
  names,
  items 
)
private
Adds a row to the EventContentView.

Definition at line 33 of file EventContentView.py.

References Vispa.Plugins.EdmBrowser.EventContentView.EventContentView._itemDict, Vispa.Plugins.EdmBrowser.EventContentView.EventContentView._rows, FWCaloRecHitDigitSetProxyBuilder.setItem(), FWGenParticleLegoProxyBuilder.setItem(), FWMuonRhoPhiProxyBuilder.setItem(), FWTrackingParticleProxyBuilder.setItem(), FWMuonProxyBuilder.setItem(), FWHGCRecHitProxyBuilder.setItem(), FWCandidateProxyBuilder.setItem(), FWCaloClusterProxyBuilder.setItem(), FWTrackProxyBuilder.setItem(), FWTrackProxyBuilderFullFramework.setItem(), FWVertexCandidateProxyBuilder.setItem(), FWVertexProxyBuilder.setItem(), FWElectronProxyBuilder.setItem(), FWDetailViewBase.setItem(), FWTauProxyBuilderBase.setItem(), FWJetProxyBuilder.setItem(), FWHeatmapProxyBuilderTemplate< reco::CaloCluster >.setItem(), FWHeatmapProxyBuilderTemplate< T >.setItem(), FWHeatmapProxyBuilderTemplate< reco::HGCalMultiCluster >.setItem(), FWHeatmapProxyBuilderTemplate< CaloParticle >.setItem(), FWProxyBuilderBase.setItem(), and str.

33  def _addRow(self, names, items):
34  """ Adds a row to the EventContentView.
35  """
36  self._rows += 1
37  i=0
38  for name in names:
39  item = LabelItem(name)
40  self.setItem(self._rows - 1, i, item)
41  i+=1
42  for entry, color in items:
43  item = LabelItem(entry, color)
44  self.setItem(self._rows - 1, i, item)
45  if i == 4:
46  self._itemDict[str(self._rows)] = item
47  item.object = name
48  i += 1
49 
#define str(s)
def Vispa.Plugins.EdmBrowser.EventContentView.EventContentView.clear (   self)
def Vispa.Plugins.EdmBrowser.EventContentView.EventContentView.itemByObject (   self,
  object 
)
Return an item in the TableView with a certain object.

Definition at line 118 of file EventContentView.py.

References Vispa.Share.ObjectHolder.ObjectHolder.dataAccessor(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController.dataAccessor(), and label.

118  def itemByObject(self, object):
119  """ Return an item in the TableView with a certain object.
120  """
121  items = []
122  for positionName, item in self._itemDict.items():
123  if item.object == self.dataAccessor().label(object):
124  items += [(positionName, item)]
125  if len(items) > 0:
126  return sorted(items)[0][1]
127  else:
128  return None
129 
char const * label
def Vispa.Plugins.EdmBrowser.EventContentView.EventContentView.select (   self,
  item 
)
Mark an item in the TableView as selected.

Definition at line 112 of file EventContentView.py.

Referenced by Vispa.Views.AbstractView.AbstractView.restoreSelection().

112  def select(self, item):
113  """ Mark an item in the TableView as selected.
114  """
115  if item != None:
116  self.setCurrentItem(item)
117 
def Vispa.Plugins.EdmBrowser.EventContentView.EventContentView.updateContent (   self)
Fill the EventContentView using the ContentsDict.

Definition at line 50 of file EventContentView.py.

50  def updateContent(self):
51  """ Fill the EventContentView using the ContentsDict.
52  """
53  logging.debug('EventContentView: updateContent()')
54  self._eventContentsList = self.dataAccessor().eventContentsList()
55  self.clear()
56  self.setSortingEnabled(False)
57  names = ["Type","Label","Product","Process"]
58  allContent = []
59  for name, content, relative, comment in self._eventContentsList:
60  names += [name]
61  for entry in content:
62  if not self.dataAccessor().inContent(entry,allContent):
63  allContent += [entry]
64  allContent.sort(lambda x, y: cmp(self.dataAccessor().label(x).lower(), self.dataAccessor().label(y).lower()))
65  self.setColumnCount(len(names))
66  self.setHorizontalHeaderLabels(names)
67  for i in range(len(names)):
68  self.horizontalHeaderItem(i).setTextAlignment(Qt.AlignLeft)
69  self.setRowCount(len(allContent))
70  for entry in allContent:
71  items = []
72  column_before=None
73  for name, content, relative, comment in self._eventContentsList:
74  this_column=self.dataAccessor().inContent(entry,content)
75  if this_column:
76  text="Yes"
77  else:
78  text="No"
79  if "_".join(entry) in comment.keys():
80  text+=" ("+comment["_".join(entry)]+")"
81  #if relative:
82  color=Qt.white
83  #else:
84  # color=Qt.gray
85  input="Input: " in name
86  output="Output: " in name
87  if column_before!=None:
88  rel=0
89  if this_column and not column_before:
90  rel=1
91  if not this_column and column_before:
92  rel=-1
93  if input:
94  if rel>0:
95  color=Qt.red
96  elif output:
97  if rel>0:
98  color=Qt.green
99  else:
100  if rel<0:
101  color=Qt.red
102  if rel>0:
103  color=Qt.green
104  if not input:
105  column_before=this_column
106  items += [(text, color)]
107  self._addRow(entry,items)
108  self.sortItems(1)
109  self.setSortingEnabled(True)
110  return True
111 
char const * label
static std::string join(char **cmd)
Definition: RemoteFile.cc:18

Member Data Documentation

Vispa.Plugins.EdmBrowser.EventContentView.EventContentView._eventContentsList
private

Definition at line 54 of file EventContentView.py.

Vispa.Plugins.EdmBrowser.EventContentView.EventContentView._itemDict
private
Vispa.Plugins.EdmBrowser.EventContentView.EventContentView._rows
private