예제 #1
0
class CoordinatesTiltPair(TiltPairSet):
    """Represents a Coordinates Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._angles = SetOfAngles()
        self._micsPair = Pointer()
        
    def getAngles(self):
        return self._angles
    
    def getMicsPair(self):
        return self._micsPair.get()
    
    def setAngles(self, setAngles):
        self._angles = setAngles
        
    def setMicsPair(self, micsPair):
        self._micsPair.set(micsPair)
        
    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getAngles().getFiles())
        filePaths.update(self.getMicsPair().getFiles())
        
        return filePaths

    def _loadClassesDict(self):
        return globals()

    def close(self):
        TiltPairSet.close(self)
        self.getAngles().close()
예제 #2
0
def launch_viewer(request):
    project = loadProject(request)

    objectId = request.GET.get('objectId')
    # Fix this, now we should use newer notation: . instead of ::
    if '::' in objectId:
        idParts = objectId.split("::")
        if idParts[1] != 'None':
            # We use the logic in Pointer.get to handle the 'extended'
            # parts that can come as part of the id (eg: 2::outputAverages::1)
            protObj = project.getObject(int(idParts[0]))
            pointer = Pointer(value=protObj)
            pointer.setExtendedParts(idParts[1:])
            obj = pointer.get()
        else:
            #
            obj = project.getObject(int(idParts[0]))
    else:
        obj = project.getObject(int(objectId))

    if obj is not None:
        if obj.isPointer():
            obj = obj.get()

        viewers = findViewers(obj.getClassName(), WEB_DJANGO)

        if len(viewers) == 0:
            views = []

            if isinstance(obj, EMProtocol):
                for _, output in obj.iterOutputAttributes(EMObject):
                    objViewers = findViewers(output.getClassName(), WEB_DJANGO)
                    if objViewers:
                        views += objViewers[0](project=project)._visualize(output) or []

            if not views:
                views = [MessageView("No viewers found for object type: %s" % obj.getClassName())]

            urls = [viewToUrl(request, view) for view in views]
        else:
            viewerClass = viewers[0]
            viewer = viewerClass(project=project, protocol=obj)

            # Lets assume if there is a viewer for the protocol
            # it will be a ProtocolViewer with a Form
            if issubclass(viewerClass, ProtocolViewer):
                urls = [viewerForm(project, obj, viewer, request)]
            else:
                views = viewer._visualize(obj)
                urls = [viewToUrl(request, v) for v in views]
    else:
        views = [MessageView("Object not found to visualize")]
        urls = [viewToUrl(request, view) for view in views]

    jsonStr = json.dumps(urls, ensure_ascii=False)

    return HttpResponse(jsonStr, content_type='application/javascript')
예제 #3
0
class CoordinatesTiltPair(EMSet):
    """Represents a Coordinates Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **args):
        EMSet.__init__(self, **args)
        self._tilted = None#SetOfCoordinates()
        self._untilted = None#SetOfCoordinates()
        self._angles = SetOfAngles()
        self._micsPair = Pointer()
        
    def getUntilted(self):
        return self._untilted
    
    def getTilted(self):
        return self._tilted
    
    def getAngles(self):
        return self._angles
    
    def getMicsPair(self):
        return self._micsPair.get()
    
    def setUntilted(self, untilted):
        self._untilted = untilted
        
    def setTilted(self, tilted):
        self._tilted = tilted
        
    def setAngles(self, setAngles):
        self._angles = setAngles
        
    def setMicsPair(self, micsPair):
        self._micsPair.set(micsPair)
        
    def getFiles(self):
        filePaths = set()
        filePaths.add(self.getTilted().getFiles)
        filePaths.add(self.getUntilted().getFiles)
        
        return filePaths

    def _loadClassesDict(self):
        return globals()

    def close(self):
        self._tilted.close()
        self._untilted.close()
        EMSet.close(self)
예제 #4
0
class ParticlesTiltPair(TiltPairSet):
    """Represents a Particles Tilt Pair"""
    ITEM_TYPE = TiltPair

    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._coordsPair = Pointer()

    def getCoordsPair(self):
        return self._coordsPair.get()

    def setCoordsPair(self, coordsPair):
        self._coordsPair.set(coordsPair)

    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getCoordsPair().getFiles())

        return filePaths
예제 #5
0
class ParticlesTiltPair(EMSet):
    """Represents a Particles Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **args):
        EMSet.__init__(self, **args)
        self._tilted = None#SetOfImages()
        self._untilted = None#SetOfImages()
        self._coordsPair = Pointer()
        
    def getUntilted(self):
        return self._untilted
    
    def getTilted(self):
        return self._tilted

    def getCoordsPair(self):
        return self._coordsPair.get()
        
    def setUntilted(self, untilted):
        self._untilted = untilted
        
    def setTilted(self, tilted):
        self._tilted = tilted

    def setCoordsPair(self, coordsPair):
        self._coordsPair.set(coordsPair)
                
    def getFiles(self):
        filePaths = set()
        filePaths.add(self.getTilted().getFiles)
        filePaths.add(self.getUntilted().getFiles)
        
        return filePaths    
    
    def _loadClassesDict(self):
        return globals()

    def close(self):
        self._tilted.close()
        self._untilted.close()
        EMSet.close(self)
예제 #6
0
class ParticlesTiltPair(TiltPairSet):
    """Represents a Particles Tilt Pair"""
    ITEM_TYPE = TiltPair
    
    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._coordsPair = Pointer()
        
    def getCoordsPair(self):
        return self._coordsPair.get()
        
    def setCoordsPair(self, coordsPair):
        self._coordsPair.set(coordsPair)
                
    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getCoordsPair().getFiles())
        
        return filePaths    
        
예제 #7
0
class CoordinatesTiltPair(TiltPairSet):
    """Represents a Coordinates Tilt Pair"""
    ITEM_TYPE = TiltPair

    def __init__(self, **kwargs):
        TiltPairSet.__init__(self, **kwargs)
        self._angles = None
        self._micsPair = Pointer()

    def getAngles(self):
        return self._angles

    def getBoxSize(self):
        return self.getUntilted().getBoxSize()

    def getMicsPair(self):
        return self._micsPair.get()

    def setAngles(self, setAngles):
        self._angles = setAngles

    def setMicsPair(self, micsPair):
        self._micsPair.set(micsPair)

    def getFiles(self):
        filePaths = TiltPairSet.getFiles(self)
        filePaths.update(self.getAngles().getFiles())
        filePaths.update(self.getMicsPair().getFiles())

        return filePaths

    def _loadClassesDict(self):
        return globals()

    def close(self):
        TiltPairSet.close(self)
        if self.getAngles():
            self.getAngles().close()