def initGui(self):
		QApplication.setOverrideCursor( Qt.WaitCursor )
		# Pick up information of all available fields in all current views.
		try:
			self.fields = {}
			queue = ViewQueue()
			queue.setup( self.viewTypes, self.viewIds )
			while not queue.isEmpty():
				id, type = queue.next()
				view = Rpc.session.execute('/object', 'execute', self.model, 'fields_view_get', id, type, Rpc.session.context)
				self.fields.update( view['fields'] )
		except Rpc.RpcException, e:
			QApplication.restoreOverrideCursor()
			return
    def createScreen(self):
        self.group = RecordGroup(self.model, context=self.context)
        self.group.setDomainForEmptyGroup()

        screen = Screen()
        screen.setRecordGroup(self.group)
        screen.setEmbedded(True)
        if 'form' in self.viewTypes:
            queue = ViewQueue()
            queue.setup(self.viewTypes, self.viewIds)
            type = ''
            while type != 'form':
                id, type = queue.next()
            screen.setupViews(['form'], [id])
        else:
            screen.setupViews(['form'], [False])
    def setup(self, viewTypes, viewIds):
        if not self.group:
            self.group = RecordGroup(self.model, context=self.context)
            self.group.setDomainForEmptyGroup()
            self.isGroupNew = True

        self.screen.setRecordGroup(self.group)
        self.screen.setEmbedded(True)
        if 'form' in viewTypes:
            queue = ViewQueue()
            queue.setup(viewTypes, viewIds)
            type = ''
            while type != 'form':
                id, type = queue.next()
            self.screen.setupViews(['form'], [id])
        else:
            self.screen.setupViews(['form'], [False])
        self.screen.new()