예제 #1
0
 def createCenterView(self,parent=None):
     """ Create the center view.
     """
     if not parent:
         parent=self.horizontalSplitter()
         
     self._centerArea = FrameWithHeader(parent)
     self._centerArea.header().setText("Center View")
     self._centerArea.header().setToolTip("click on '>' for options of this view")
     self._centerArea.header().createMenuButton()
     
     self._scrollArea=ZoomableScrollArea(self._centerArea)
     self._centerArea.addWidget(self._scrollArea)
     self.setCenterView(NoneView())
예제 #2
0
 def testExample(self):
     logging.debug(self.__class__.__name__ + ': testExample()')
     self.app = QApplication(sys.argv)
     self.window = QMainWindow()
     self.window.setWindowTitle("test ZoomableWidget")
     self.window.resize(300, 300)
     self.app.setActiveWindow(self.window)
     self.window.show()
     self.scrollArea = ZoomableScrollArea(self.window)
     self.window.setCentralWidget(self.scrollArea)
     self.zoomableWidget = ZoomableWidget()
     self.scrollArea.setWidget(self.zoomableWidget)
     self.widget = VispaWidget(self.zoomableWidget)
     self.widget.move(10, 10)
     self.widget.show()
     if not hasattr(unittest, "NO_GUI_TEST"):
         self.app.exec_()
예제 #3
0
class ZoomableWidgetTestCase(unittest.TestCase):
    def testExample(self):
        logging.debug(self.__class__.__name__ + ': testExample()')
        self.app = QApplication(sys.argv)
        self.window = QMainWindow()
        self.window.setWindowTitle("test ZoomableWidget")
        self.window.resize(300,300)
        self.app.setActiveWindow(self.window)
        self.window.show()
        self.scrollArea = ZoomableScrollArea(self.window)
        self.window.setCentralWidget(self.scrollArea)
        self.zoomableWidget = ZoomableWidget()
        self.scrollArea.setWidget(self.zoomableWidget)
        self.widget=VispaWidget(self.zoomableWidget)
        self.widget.move(10,10)
        self.widget.show()
        if not hasattr(unittest,"NO_GUI_TEST"):
            self.app.exec_()
예제 #4
0
    def testExample(self):
        logging.debug(self.__class__.__name__ + ': testExample()')
        self.app = QApplication(sys.argv)
        self.window = QMainWindow()
        self.window.setWindowTitle("test BoxDecayView")
        self.window.resize(300, 300)
        self.app.setActiveWindow(self.window)
        self.window.show()
        self.scrollArea = ZoomableScrollArea(self.window)
        self.window.setCentralWidget(self.scrollArea)
        self.boxDecayView = BoxDecayView()
        self.scrollArea.setWidget(self.boxDecayView)
        accessor = TestDataAccessor()
        self.boxDecayView.setDataAccessor(accessor)
        self.boxDecayView.setDataObjects(accessor.topLevelObjects())
        self.boxDecayView.setBoxContentScript("str(object.Label)")
        self.boxDecayView.updateContent()
        for w in self.boxDecayView.children():
            if hasattr(w, "setDragable"):
                w.setDragable(True, True)

        if not hasattr(unittest, "NO_GUI_TEST"):
            self.app.exec_()
예제 #5
0
 def testExample(self):
     logging.debug(self.__class__.__name__ + ': testExample()')
     try:
         from pxl.algorithms import AutoLayout
     except Exception:
         logging.info("LineDecayView needs PXL: " + exception_traceback())
         return
     self.app = QApplication(sys.argv)
     self.window = QMainWindow()
     self.window.setWindowTitle("test LineDecayView")
     self.window.resize(300, 300)
     self.app.setActiveWindow(self.window)
     self.window.show()
     self.scrollArea = ZoomableScrollArea(self.window)
     self.window.setCentralWidget(self.scrollArea)
     self.lineDecayView = LineDecayView()
     self.scrollArea.setWidget(self.lineDecayView)
     accessor = TestDataAccessor()
     self.lineDecayView.setDataAccessor(accessor)
     self.lineDecayView.setDataObjects(accessor.topLevelObjects())
     self.lineDecayView.updateContent()
     if not hasattr(unittest, "NO_GUI_TEST"):
         self.app.exec_()
예제 #6
0
class LineDecayViewTestCase(unittest.TestCase):
    def testExample(self):
        logging.debug(self.__class__.__name__ + ': testExample()')
        try:
            from pxl.algorithms import AutoLayout
        except Exception:
            logging.info("LineDecayView needs PXL: " + exception_traceback())
            return
        self.app = QApplication(sys.argv)
        self.window = QMainWindow()
        self.window.setWindowTitle("test LineDecayView")
        self.window.resize(300,300)
        self.app.setActiveWindow(self.window)
        self.window.show()
        self.scrollArea = ZoomableScrollArea(self.window)
        self.window.setCentralWidget(self.scrollArea)
        self.lineDecayView = LineDecayView()
        self.scrollArea.setWidget(self.lineDecayView)
        accessor=TestDataAccessor()
        self.lineDecayView.setDataAccessor(accessor)
        self.lineDecayView.setDataObjects(accessor.topLevelObjects())
        self.lineDecayView.updateContent()
        if not hasattr(unittest,"NO_GUI_TEST"):
            self.app.exec_()
예제 #7
0
class BoxDecayViewTestCase(unittest.TestCase):
    def testExample(self):
        logging.debug(self.__class__.__name__ + ': testExample()')
        self.app = QApplication(sys.argv)
        self.window = QMainWindow()
        self.window.setWindowTitle("test BoxDecayView")
        self.window.resize(300,300)
        self.app.setActiveWindow(self.window)
        self.window.show()
        self.scrollArea = ZoomableScrollArea(self.window)
        self.window.setCentralWidget(self.scrollArea)
        self.boxDecayView = BoxDecayView()
        self.scrollArea.setWidget(self.boxDecayView)
        accessor=TestDataAccessor()
        self.boxDecayView.setDataAccessor(accessor)
        self.boxDecayView.setDataObjects(accessor.topLevelObjects())
        self.boxDecayView.setBoxContentScript("str(object.Label)")
        self.boxDecayView.updateContent()
        for w in self.boxDecayView.children():
            if hasattr(w, "setDragable"):
                w.setDragable(True, True)

        if not hasattr(unittest,"NO_GUI_TEST"):
            self.app.exec_()
예제 #8
0
class BrowserTab(SplitterTab):
    """ The BrowserTab has three views and is controlled by the BrowserControllerTab.
    """
    def __init__(self, parent=None, topLevelPropertyView=False):
        logging.debug(__name__ + ": __init__")
        SplitterTab.__init__(self, parent, topLevelPropertyView)

        self._treeView = None
        self._centerView = None

        self.createTreeView()
        self.createCenterView()
        self.createPropertyView()
        if topLevelPropertyView:
            self.horizontalSplitter().setSizes([300, 400])
            self.setSizes([700, 300])
        else:
            self.horizontalSplitter().setSizes([300, 400, 300])
        
    def createTreeView(self,parent=None):
        """ Create the tree view.
        """
        if not parent:
            parent=self.horizontalSplitter()
        
        self._treeviewArea = FrameWithHeader(parent)
        self._treeviewArea.header().setText("Tree View")
        self._treeviewArea.header().setToolTip("click on '>' for options of this view")
        self._treeViewMenuButton = self._treeviewArea.header().createMenuButton()
        self._treeView = TreeView(self._treeviewArea)
        self._treeviewArea.addWidget(self._treeView)
        
    def createCenterView(self,parent=None):
        """ Create the center view.
        """
        if not parent:
            parent=self.horizontalSplitter()
            
        self._centerArea = FrameWithHeader(parent)
        self._centerArea.header().setText("Center View")
        self._centerArea.header().setToolTip("click on '>' for options of this view")
        self._centerArea.header().createMenuButton()
        
        self._scrollArea=ZoomableScrollArea(self._centerArea)
        self._centerArea.addWidget(self._scrollArea)
        self.setCenterView(NoneView())
            
    def setCenterView(self,view):
        """ Set the center view.
        """
        logging.debug(self.__class__.__name__ +": setCenterView()")
        if self.centerView():
            self.centerView().close()
        self._scrollArea.takeWidget()
        self._centerView = view
        if isinstance(self.centerView(), ZoomableScrollableWidgetOwner):
            if isinstance(self.centerView(), Zoomable):
                self.centerView().setZoom(self._scrollArea.zoom())
            self._scrollArea.setWidget(self.centerView())
            self._scrollArea.show()
        else:
            self.centerView().resize(self._scrollArea.size())
            self._scrollArea.hide()
            self._centerArea.layout().addWidget(self.centerView())
            self.centerView().show()

    def treeView(self):
        return self._treeView
    
    def centerView(self):
        return self._centerView
    
    def setController(self, controller):
        """ Sets controller for this tab and connects signals etc.
        """
        SplitterTab.setController(self, controller)
        if self._scrollArea:
            self.connect(self._scrollArea, SIGNAL('wheelZoom()'), controller.resetZoomButtonPressedBefore)
            self.connect(self._scrollArea, SIGNAL("zoomChanged(float)"), controller.zoomChanged)
            self.connect(self.centerViewMenuButton(), SIGNAL("clicked(bool)"), controller.centerViewMenuButtonClicked)
            self.connect(self.treeViewMenuButton(), SIGNAL("clicked(bool)"), controller.treeViewMenuButtonClicked)

    def scrollArea(self):
        return self._scrollArea
    
    def treeViewMenuButton(self):
        return self._treeviewArea.header().menuButton()
    
    def centerViewMenuButton(self):
        return self._centerArea.header().menuButton()
    
    def treeViewHeader(self):
        return self._treeviewArea.header()
    
    def centerViewHeader(self):
        return self._centerArea.header()
    
    def setCenterViewHeader(self,text):
        self._centerArea.header().setText(text)

    def setTreeViewHeader(self,text):
        self._treeviewArea.header().setText(text)