NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

viewcontroller.py (3273B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveclientqatools\sofpreviewer\materialselection\viewcontroller.py
      2 from __future__ import absolute_import
      3 from .viewmodel import MaterialSelectionViewModel
      4 from .view import MaterialSelectionView
      5 import fsdBuiltData.common.graphicMaterialSets as graphicMaterialSets
      6 from eveclientqatools.sofpreviewer import viewhelper as ViewHelper
      7 
      8 class MaterialSelectionViewController(object):
      9 
     10     def __init__(self, model, parentController, parentView):
     11         self.parentController = parentController
     12         self.parentView = parentView
     13         self.model = model
     14         self.viewModel = MaterialSelectionViewModel(self.model)
     15         self.view = None
     16 
     17     def ShowUI(self, parentContainer):
     18         self.view = MaterialSelectionView(self)
     19         self.view.Setup(parentContainer, self.viewModel)
     20         return self.view
     21 
     22     def OnMat1ComboChange(self, comboBox, material, value):
     23         self.viewModel.currentMat[0] = material
     24         self.parentController.UpdatePreviewShip()
     25 
     26     def OnMat2ComboChange(self, comboBox, material, value):
     27         self.viewModel.currentMat[1] = material
     28         self.parentController.UpdatePreviewShip()
     29 
     30     def OnMat3ComboChange(self, comboBox, material, value):
     31         self.viewModel.currentMat[2] = material
     32         self.parentController.UpdatePreviewShip()
     33 
     34     def OnMat4ComboChange(self, comboBox, material, value):
     35         self.viewModel.currentMat[3] = material
     36         self.parentController.UpdatePreviewShip()
     37 
     38     def OnPatternMat1ComboChange(self, comboBox, material, value):
     39         self.viewModel.currentPatternMat[0] = material
     40         self.parentController.UpdatePreviewShip()
     41 
     42     def OnPatternMat2ComboChange(self, comboBox, material, value):
     43         self.viewModel.currentPatternMat[1] = material
     44         self.parentController.UpdatePreviewShip()
     45 
     46     def UpdateCombobox(self, materialSet, func, combo, onComboChange):
     47         item = func(materialSet, 'None')
     48         idx = ViewHelper.GetComboListIndex(self.model.sofMaterials, item)
     49         combo.SelectItemByValue(idx)
     50         onComboChange(combo, item, idx)
     51 
     52     def OnMaterialSetIDChange(self, materialSet):
     53         changes = [(graphicMaterialSets.GetMaterial1, self.view.matcombo1, self.OnMat1ComboChange),
     54          (graphicMaterialSets.GetMaterial2, self.view.matcombo2, self.OnMat2ComboChange),
     55          (graphicMaterialSets.GetMaterial3, self.view.matcombo3, self.OnMat3ComboChange),
     56          (graphicMaterialSets.GetMaterial4, self.view.matcombo4, self.OnMat4ComboChange),
     57          (graphicMaterialSets.GetCustomMaterial1, self.view.matcombo5, self.OnPatternMat1ComboChange),
     58          (graphicMaterialSets.GetCustomMaterial2, self.view.matcombo6, self.OnPatternMat2ComboChange)]
     59         for change in changes:
     60             self.UpdateCombobox(materialSet, *change)
     61 
     62     def AppendMaterialToDna(self, dna):
     63         if any((x != 'None' for x in self.viewModel.currentMat)):
     64             dna += ':material?' + str(self.viewModel.currentMat[0]) + ';' + str(self.viewModel.currentMat[1]) + ';' + str(self.viewModel.currentMat[2]) + ';' + str(self.viewModel.currentMat[3])
     65         return dna
     66 
     67     @property
     68     def currentPatternMat(self):
     69         return self.viewModel.currentPatternMat