Пример #1
0
    def updateModule(self, module):
        """ updateModule(module: Module) -> None        
        Setup this tree widget to show functions of module
        
        """
        self.clear()

        if module:
            try:
                descriptor = registry.get_descriptor_by_name(module.package,
                                                             module.name,
                                                             module.namespace)
            except registry.MissingModulePackage, e:
                # FIXME handle this the same way as
                # vistrail_controller:change_selected_version
                raise
            moduleHierarchy = registry.get_module_hierarchy(descriptor)
            for baseModule in moduleHierarchy:
                baseName = registry.get_descriptor(baseModule).name
                base_package = registry.get_descriptor(baseModule).identifier
                # Create the base widget item
                baseItem = QMethodTreeWidgetItem(None,
                                                 None,
                                                 None,
                                                 self,
                                                 (QtCore.QStringList()
                                                  <<  baseName
                                                  << ''))
                methods = registry.method_ports(baseModule)
                # Also check the local registry
                if module.registry and module.registry.has_module(base_package,
                                                                  baseName):
                    methods += module.registry.method_ports(baseModule)
                for method in methods:
                    sig = method.spec.create_sigstring(short=True)
                    QMethodTreeWidgetItem(module,
                                          method,
                                          method.spec,
                                          baseItem,
                                          (QtCore.QStringList()
                                           << method.name
                                           << sig))
            self.expandAll()
            self.resizeColumnToContents(0)
 def initializePorts(self, ports):
     self.disconnect(self.model(),
                     QtCore.SIGNAL('dataChanged(QModelIndex,QModelIndex)'),
                     self.handleDataChanged)
     for p in ports:
         model = self.model()
         portType = registry.get_descriptor(p.spec.signature[0][0]).name
         model.setData(model.index(self.rowCount()-1, 1),
                       QtCore.QVariant(portType),
                       QtCore.Qt.DisplayRole)
         model.setData(model.index(self.rowCount()-1, 0),
                       QtCore.QVariant(p.name),
                       QtCore.Qt.DisplayRole)
         self.setRowCount(self.rowCount()+1)
     self.fixGeometry()
     self.connect(self.model(),
                  QtCore.SIGNAL('dataChanged(QModelIndex,QModelIndex)'),
                  self.handleDataChanged)
 def specsFromPorts(self, portType, ports):
     return [(portType,
              p.name,
              '('+registry.get_descriptor(p.spec.signature[0][0]).name+')')
             for p in ports[0][1]]