def CreateStructureMenu(self): """Creates the structure menu.""" # Structure Menu ID's self.ID_STRUCT_CONVERT = wx.NewId() self.ID_STRUCT_VISUALIZE = wx.NewId() self.ID_STRUCT_SHOWBZ = wx.NewId() menu = wx.Menu() menu.Append(self.ID_STRUCT_CONVERT, "Convert", "Convert structure data to cif, POSCAR ...") self.Bind(wx.EVT_MENU, self.OnStructureConvert, id=self.ID_STRUCT_CONVERT) menu.Append(self.ID_STRUCT_SHOWBZ, "Show BZ", "Visualize the first Brillouin zone with matplotlib.") self.Bind(wx.EVT_MENU, self.OnStructureShowBz, id=self.ID_STRUCT_SHOWBZ) # Make sub-menu with the list of supported visualizers. visu_menu = wx.Menu() self._id2visuname = {} available_visus = [visu.name for visu in Visualizer.get_available()] for appname in available_visus: _id = wx.NewId() visu_menu.Append(_id, appname) self._id2visuname[_id] = appname self.Bind(wx.EVT_MENU, self.OnStructureVisualize, id=_id) menu.AppendMenu(-1, 'Visualize', visu_menu) return menu
def makeToolBar(self): """Creates the toolbar.""" self.toolbar = toolbar = self.CreateToolBar() toolbar.SetToolBitmapSize(wx.Size(48, 48)) def bitmap(path): return wx.Bitmap(awx.path_img(path)) artBmp = wx.ArtProvider.GetBitmap toolbar.AddSimpleTool(wx.ID_OPEN, artBmp(wx.ART_FILE_OPEN, wx.ART_TOOLBAR), "Open") toolbar.AddSeparator() # Combo box with the list of visualizers avail_visunames = [visu.name for visu in Visualizer.get_available()] value = avail_visunames[0] if avail_visunames else "None" self.visualizer_cbox = wx.ComboBox(toolbar, id=-1, name='visualizer', choices=avail_visunames, value=value, style=wx.CB_READONLY) toolbar.AddControl(control=self.visualizer_cbox) toolbar.Realize()
def CreateStructureMenu(self): """Creates the structure menu.""" # Structure Menu ID's self.ID_STRUCT_CONVERT = wx.NewId() self.ID_STRUCT_VISUALIZE = wx.NewId() self.ID_STRUCT_SHOWBZ = wx.NewId() menu = wx.Menu() menu.Append(self.ID_STRUCT_CONVERT, "Convert", "Convert structure data to cif, POSCAR ...") self.Bind(wx.EVT_MENU, self.OnStructureConvert, id=self.ID_STRUCT_CONVERT) menu.Append(self.ID_STRUCT_SHOWBZ, "Show BZ", "Visualize the first Brillouin zone with matplotlib.") self.Bind(wx.EVT_MENU, self.OnStructureShowBz, id=self.ID_STRUCT_SHOWBZ) # Make sub-menu with the list of supported visualizers. visu_menu = wx.Menu() self._id2visuname = {} available_visus = [visu.name for visu in Visualizer.get_available()] for visu_name in available_visus: _id = wx.NewId() visu_menu.Append(_id, visu_name) self._id2visuname[_id] = visu_name self.Bind(wx.EVT_MENU, self.OnStructureVisualize, id=_id) menu.AppendMenu(-1, 'Visualize', visu_menu) return menu
def test_visualizers(self): print("Available visualizers:") for vclass in Visualizer.get_available(): print(vclass) assert Xcrysden.support_ext("xsf") and Xcrysden.support_ext(".xsf") assert Vesta is Visualizer.from_name("vesta") assert Vesta.support_ext( "xsf") and "xsf" in Vesta.supported_extensions() #assert Vesta.from_file("foo.xsf") with self.assertRaises(Visualizer.Error): Visualizer.from_name("foobar") assert len(Visualizer.all_visunames()) assert V_Sim.support_ext("xsf") for cls in [Xcrysden, V_Sim, Vesta, Ovito, Avogadro]: visu = cls("foo.xsf") assert callable(visu) repr(visu) str(visu) # cmdarg is a string? assert visu.cmdarg + " " assert visu.is_available in (True, False)
def showStructure(parent, filepath): ncfile = abiopen(filepath) visu_classes = Visualizer.get_available(ext="xsf") if not visu_classes: print("Not visualizer found for extension xsf") return vname = visu_classes[0].name visu = ncfile.structure.visualize(vname) thread = awx.WorkerThread(parent, target=visu) thread.start()
def test_visualizers(self): print("Available visualizers:") for vclass in Visualizer.get_available(): print(vclass) assert Xcrysden.support_ext("xsf") and Xcrysden.support_ext(".xsf") assert Vesta is Visualizer.from_name("vesta") assert Vesta.support_ext( "xsf") and "xsf" in Vesta.supported_extensions() #assert Vesta.from_file("foo.xsf") assert V_Sim.support_ext("xsf")