import os import sys from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4.QtXml import * from sface.xmlwidget import * from sface.config import config from sface.screens.sfascreen import SfaScreen from sface.sfidata import SfiData class RSpecView(XmlView): def __init__(self, parent): XmlView.__init__(self, parent) def expandMatchingText(self, txt): self.collapseAll() self.expandToDepth(0) model = self.model() def recursiveExpand(index): parent = index.parent() if parent and parent.isValid(): recursiveExpand(parent) self.expand(index) def search(index): if index.data().toString() == txt: recursiveExpand(index) self.scrollTo(index, self.PositionAtCenter) return rows = model.rowCount(index) for r in range(rows): child_index = index.child(r, 0) search(child_index) root_rows = model.rowCount() for r in range(root_rows): index = model.index(r, 0) search(index) class RSpecWindow(XmlWindow): def __init__(self, parent=None): XmlWindow.__init__(self, parent, 'RSpec Window') def initView(self): return RSpecView(self) def showNode(self, hostname): self.view.expandMatchingText(hostname) def readContent(self): rspec = SfiData().getSliceRSpec() if not rspec: return "" return rspec.toxml() class ResourcesWindow(XmlWindow): def __init__(self, parent=None): XmlWindow.__init__(self, parent, 'Resources Window') def initView(self): return RSpecView(self) def showNode(self, hostname): self.view.expandMatchingText(hostname) def readContent(self): rspec = SfiData().getResourcesRSpec() if not rspec: return "" return rspec.toxml()