Commit b6f25d83 authored by eric pellegrini's avatar eric pellegrini

Get rid of empty data that was very fuzzy for users

Moved the converters to a specific menu
Reintroduced the __setitem__ for the ElementsDatabase
Reintroduced and refactored the PreferencesSettingsDialog
Refactored the PeriodicTablePlugin
Added new icons
Refactored the Icon class
parent 60ebe8f6
......@@ -59,7 +59,6 @@ class DensitySuperpositionPlugin(ComponentPlugin):
ComponentPlugin.__init__(self, parent, size = parent.GetSize(), *args, **kwargs)
def build_panel(self):
self._mainPanel = wx.Panel(self, wx.ID_ANY, size=self.GetSize())
......
......@@ -48,11 +48,11 @@ from MDANSE.App.GUI.ComboWidgets.JobHelpFrame import JobHelpFrame
class JobPlugin(ComponentPlugin):
def __init__(self, parent, **kwargs):
def __init__(self, parent, *args, **kwargs):
self._job = REGISTRY["job"][self.type]()
ComponentPlugin.__init__(self, parent, size=wx.Size(800,400), **kwargs)
ComponentPlugin.__init__(self, parent, size=wx.Size(800,400), *args, **kwargs)
def build_panel(self):
......@@ -103,7 +103,7 @@ class JobPlugin(ComponentPlugin):
parameters = self._parametersPanel.get_value()
t = tempfile.mkstemp(prefix = "nMOLDYN_%s_" % self._job.type, text = True)
t = tempfile.mkstemp(prefix = "MDANSE_%s_" % self._job.type, text = True)
os.close(t[0])
self._job.save_job(t[1], parameters)
......@@ -132,7 +132,7 @@ class JobPlugin(ComponentPlugin):
parameters = self._parametersPanel.get_value()
d = wx.FileDialog(self, "Save nMOLDYN python script", style = wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT, wildcard = "Python files (*.py)|*.py")
d = wx.FileDialog(self, "Save MDANSE python script", style = wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT, wildcard = "Python files (*.py)|*.py")
if d.ShowModal() == wx.ID_CANCEL:
return
......@@ -157,4 +157,47 @@ class JobPlugin(ComponentPlugin):
def on_close(self, event):
self.parent.mgr.ClosePane(self.parent.mgr.GetPane(self))
\ No newline at end of file
self.parent.mgr.ClosePane(self.parent.mgr.GetPane(self))
class JobFrame(wx.Frame):
def __init__(self, parent, jobType):
wx.Frame.__init__(self, parent, wx.ID_ANY, size = (800,400), style=wx.DEFAULT_DIALOG_STYLE|wx.MINIMIZE_BOX|wx.MAXIMIZE_BOX|wx.RESIZE_BORDER)
self._jobType = jobType
self.build_dialog()
def build_dialog(self):
mainPanel = wx.Panel(self, wx.ID_ANY, size = self.GetSize())
mainSizer = wx.BoxSizer(wx.VERTICAL)
self._jobPlugin = REGISTRY['plugin'][self._jobType](mainPanel, wx.ID_ANY)
mainSizer.Add(self._jobPlugin, 1, wx.ALL|wx.EXPAND)
mainPanel.SetSizer(mainSizer)
mainSizer.Fit(mainPanel)
mainPanel.Layout()
self.SetTitle("Run %s job" % self._jobPlugin._job.label)
self.Bind(wx.EVT_CLOSE, self.on_quit)
def on_quit(self, event):
d = wx.MessageDialog(None,
'Do you really want to quit ?',
'Question',
wx.YES_NO|wx.YES_DEFAULT|wx.ICON_QUESTION)
if d.ShowModal() == wx.ID_YES:
self.Destroy()
if __name__ == "__main__":
app = wx.App(False)
f = JobFrame(None,'discover')
f.Show()
app.MainLoop()
\ No newline at end of file
......@@ -173,8 +173,6 @@ _LAYOUT["Md"] = (9,16)
_LAYOUT["No"] = (9,17)
_LAYOUT["Lr"] = (9,18)
_LAYOUT["ud"] = (2,5)
_COLS = range(1,19)
_ROWS = ["i","ii","iii","iv","v","vi","vii"]
......@@ -221,9 +219,9 @@ class PropertyDialog(wx.Dialog):
subPanel = wx.Panel(panel,wx.ID_ANY)
staticLabel1 = wx.StaticText(subPanel, wx.ID_ANY, "Name")
self.name = wx.TextCtrl(subPanel, wx.ID_ANY)
self.name = wx.TextCtrl(subPanel, wx.ID_ANY)
staticLabel2 = wx.StaticText(subPanel, wx.ID_ANY, "Default value")
self.default = wx.TextCtrl(subPanel, wx.ID_ANY)
self.propertyType = wx.ComboBox(subPanel, id = wx.ID_ANY, choices=ELEMENTS._TYPES.keys(), style=wx.CB_READONLY)
staticLine = wx.StaticLine(self, wx.ID_ANY)
......@@ -239,7 +237,7 @@ class PropertyDialog(wx.Dialog):
subsizer.Add(staticLabel1,pos=(0,0),flag=wx.ALIGN_CENTER_VERTICAL)
subsizer.Add(self.name ,pos=(0,1),flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
subsizer.Add(staticLabel2,pos=(1,0),flag=wx.ALIGN_CENTER_VERTICAL)
subsizer.Add(self.default,pos=(1,1),flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
subsizer.Add(self.propertyType,pos=(1,1),flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
subPanel.SetSizer(subsizer)
panelSizer.Add(subPanel, 0, wx.ALL|wx.EXPAND, 5)
panel.SetSizer(panelSizer)
......@@ -268,8 +266,8 @@ class PropertyDialog(wx.Dialog):
pname = str(self.name.GetValue().strip())
pdefault = ast.literal_eval(self.default.GetValue().strip())
pdefault = str(self.propertyType.GetValue())
return pname,pdefault
class StaticFancyText(wxfancytext.StaticFancyText):
......@@ -501,9 +499,9 @@ class Database(wxgrid.PyGridTableBase):
ELEMENTS[ELEMENTS.elements[row],ELEMENTS.properties[col]] = val
def add_column(self, pname,pdefault):
ELEMENTS.add_property(pname, pdefault)
self.notify_grid(wxgrid.GRIDTABLE_NOTIFY_COLS_APPENDED, 1)
def add_row(self, ename):
......@@ -512,8 +510,6 @@ class Database(wxgrid.PyGridTableBase):
self.notify_grid(wxgrid.GRIDTABLE_NOTIFY_ROWS_APPENDED, 1)
pub.sendMessage(('new_element_added'), message=ename)
def notify_grid(self, msg, count):
"Notifies the grid of the message and the affected count."
......@@ -651,13 +647,9 @@ class PeriodicTablePanel(wx.Panel):
wid = wxstattext.GenStaticText(parent =self,ID = wx.ID_ANY, label="**", size=(40,40), style = wx.ALIGN_CENTRE|wx.EXPAND)
sizer.Add(wid, (10,3), flag=wx.ALL|wx.ALIGN_CENTER|wx.FIXED_MINSIZE|wx.EXPAND, border=1)
wid = self.userDefinedElements = wx.ComboBox(self, size=(40,40), style = wx.ALIGN_CENTRE|wx.EXPAND|wx.CB_READONLY)
sizer.Add(wid, _LAYOUT["ud"], (1,3), flag=wx.ALL|wx.ALIGN_CENTER|wx.FIXED_MINSIZE|wx.EXPAND, border=1)
bkg_color = _FAMILY['user-defined']
self.userDefinedElements.SetBackgroundColour((bkg_color[0], bkg_color[1], bkg_color[2]))
fg_color = _STATE['user-defined']
self.userDefinedElements.SetForegroundColour((fg_color[0], fg_color[1], fg_color[2]))
self.userDefinedElements.SetToolTipString('User-defined')
# The panel that will contain the short info about a selected element.
self.shortInfo = ElementShortInfoPanel(self)
sizer.Add(self.shortInfo, (1,5), (3,6), flag=wx.ALL|wx.ALIGN_CENTER|wx.FIXED_MINSIZE|wx.EXPAND, border=1)
symbs = []
for el in ELEMENTS.elements:
......@@ -677,28 +669,14 @@ class PeriodicTablePanel(wx.Panel):
wid.Bind(wx.EVT_ENTER_WINDOW, self.on_display_element_short_info)
sizer.Add(wid, (r+1,c), flag=wx.ALL|wx.ALIGN_CENTER|wx.FIXED_MINSIZE|wx.EXPAND, border=1)
except KeyError:
self.userDefinedElements.Append(el)
self.userDefinedElements.SetSelection(0)
continue
general_sizer.Add(sizer,0,wx.ALL|wx.EXPAND,5)
self.SetSizer(general_sizer)
general_sizer.Fit(self)
self.Layout()
# The panel that will contain the short info about a selected element.
self.shortInfo = ElementShortInfoPanel(self)
self._parent.mgr.AddPane(self.shortInfo, wxaui.AuiPaneInfo().Float().Right().CloseButton(False))
self._parent.mgr.Update()
pub.subscribe(self.msg_new_element_added, ('new_element_added'))
def msg_new_element_added(self, message):
self.userDefinedElements.Append(message)
self.userDefinedElements.SetSelection(0)
def on_quit(self, event):
d = wx.MessageDialog(None,
......@@ -766,7 +744,7 @@ class PeriodicTablePlugin(ComponentPlugin):
label = "Periodic Table"
ancestor = "empty_data"
ancestor = None
def build_panel(self):
......@@ -823,7 +801,7 @@ class PeriodicTablePlugin(ComponentPlugin):
pname,pdefault = d.GetValue()
if (not pname) or (not pdefault):
if not pname:
return
self._database.add_column(pname,pdefault)
......
......@@ -47,11 +47,10 @@ class RegistryViewerPlugin(ComponentPlugin):
label = "Registry Viewer"
ancestor = "empty_data"
ancestor = None
def __init__(self, parent, *args, **kwargs):
self.currentFilename = None
self._udTree = {}
ComponentPlugin.__init__(self, parent, size = parent.GetSize(), *args, **kwargs)
......@@ -140,7 +139,6 @@ class RegistryViewerFrame(wx.Frame):
mainSizer = wx.BoxSizer(wx.VERTICAL)
self._registryViewerPlugin = RegistryViewerPlugin(mainPanel, wx.ID_ANY)
mainSizer.Add(self._registryViewerPlugin, 1, wx.ALL|wx.EXPAND)
......@@ -149,6 +147,8 @@ class RegistryViewerFrame(wx.Frame):
mainSizer.Fit(mainPanel)
mainPanel.Layout()
self.Bind(wx.EVT_CLOSE, self.on_quit)
def on_quit(self, event):
d = wx.MessageDialog(None,
......
......@@ -49,11 +49,10 @@ class UserDefinitionViewerPlugin(ComponentPlugin):
label = "User Definition Viewer"
ancestor = "empty_data"
ancestor = None
def __init__(self, parent, *args, **kwargs):
self.currentFilename = None
self._udTree = {}
ComponentPlugin.__init__(self, parent, size = parent.GetSize(), *args, **kwargs)
......@@ -198,7 +197,6 @@ class UserDefinitionViewerFrame(wx.Frame):
self.build_dialog()
def build_dialog(self):
......@@ -206,7 +204,6 @@ class UserDefinitionViewerFrame(wx.Frame):
mainSizer = wx.BoxSizer(wx.VERTICAL)
self._userDefinitionViewerPlugin = UserDefinitionViewerPlugin(mainPanel, wx.ID_ANY)
mainSizer.Add(self._userDefinitionViewerPlugin, 1, wx.ALL|wx.EXPAND)
......@@ -215,6 +212,7 @@ class UserDefinitionViewerFrame(wx.Frame):
mainSizer.Fit(mainPanel)
mainPanel.Layout()
self.Bind(wx.EVT_CLOSE, self.on_quit)
def on_quit(self, event):
......
......@@ -52,11 +52,9 @@ class OutputFilesWidget(IWidget):
def add_widgets(self):
sizer = wx.BoxSizer(wx.VERTICAL)
startDirectory = os.getcwd()
plugin = plugin_parent(self)
startDirectory = os.path.dirname(plugin.datakey)
self._dirname = wxfile.DirBrowseButton(self._widgetPanel, wx.ID_ANY, startDirectory=startDirectory, newDirectory=True)
self._dirname.SetValue(startDirectory)
......
......@@ -9,15 +9,14 @@ root = os.path.dirname(__file__)
class Icons(object):
__metaclass__ = Singleton
def __init__(self):
self._icons = {}
def __getitem__(self,item):
name, width, height = item
image = wx.ImageFromBitmap(wx.Bitmap(self._icons[name]))
icon = os.path.join(root,name)+".png"
image = wx.ImageFromBitmap(wx.Bitmap(icon))
image = image.Scale(width, height, wx.IMAGE_QUALITY_HIGH)
return wx.BitmapFromImage(image)
......@@ -27,28 +26,3 @@ class Icons(object):
self._icons[name] = path
ICONS = Icons()
ICONS.add_icon("about",os.path.join(root,'about.png'))
ICONS.add_icon("bug",os.path.join(root,'bug.png'))
ICONS.add_icon("clock",os.path.join(root,'clock.png'))
ICONS.add_icon("empty_data",os.path.join(root,'empty_data.png'))
ICONS.add_icon("first",os.path.join(root,'first.png'))
ICONS.add_icon("help",os.path.join(root,'help.png'))
ICONS.add_icon("hourglass",os.path.join(root,'hourglass.png'))
ICONS.add_icon("last",os.path.join(root,'last.png'))
ICONS.add_icon("load",os.path.join(root,'load.png'))
ICONS.add_icon("log",os.path.join(root,'log.png'))
ICONS.add_icon("logfile",os.path.join(root,'logfile.png'))
ICONS.add_icon("mdanse",os.path.join(root,'mdanse.png'))
ICONS.add_icon("pause",os.path.join(root,'pause.png'))
ICONS.add_icon("periodic_table",os.path.join(root,'periodic_table.png'))
ICONS.add_icon("play",os.path.join(root,'play.png'))
ICONS.add_icon("plot",os.path.join(root,'plot.png'))
ICONS.add_icon("preferences",os.path.join(root,'preferences.png'))
ICONS.add_icon("quit",os.path.join(root,'quit.png'))
ICONS.add_icon("run",os.path.join(root,'run.png'))
ICONS.add_icon("shell",os.path.join(root,'shell.png'))
ICONS.add_icon("stop",os.path.join(root,'stop.png'))
ICONS.add_icon("user",os.path.join(root,'user.png'))
ICONS.add_icon("web",os.path.join(root,'web.png'))
ICONS.add_icon("about",os.path.join(root,'about.png'))
ICONS.add_icon("working_directory",os.path.join(root,'working_directory.png'))
MDANSE/App/GUI/Icons/logfile.png

15.2 KB | W: | H:

MDANSE/App/GUI/Icons/logfile.png

39.4 KB | W: | H:

MDANSE/App/GUI/Icons/logfile.png
MDANSE/App/GUI/Icons/logfile.png
MDANSE/App/GUI/Icons/logfile.png
MDANSE/App/GUI/Icons/logfile.png
  • 2-up
  • Swipe
  • Onion skin
#MDANSE : Molecular Dynamics Analysis for Neutron Scattering Experiments
#------------------------------------------------------------------------------------------
#Copyright (C)
#2015- Eric C. Pellegrini Institut Laue-Langevin
#BP 156
#6, rue Jules Horowitz
#38042 Grenoble Cedex 9
#France
#pellegrini[at]ill.fr
#goret[at]ill.fr
#aoun[at]ill.fr
#
#This library is free software; you can redistribute it and/or
#modify it under the terms of the GNU Lesser General Public
#License as published by the Free Software Foundation; either
#version 2.1 of the License, or (at your option) any later version.
#
#This library is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#Lesser General Public License for more details.
#
#You should have received a copy of the GNU Lesser General Public
#License along with this library; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
'''
Created on May 28, 2015
@author: Eric C. Pellegrini
'''
import os
import wx
from MDANSE import PLATFORM
class LogfileFrame(wx.Frame):
def __init__(self,parent,*args,**kwargs):
wx.Frame.__init__(self,parent,size=(800,500),*args,**kwargs)
panel = wx.Panel(self,wx.ID_ANY)
sizer = wx.BoxSizer(wx.VERTICAL)
self._logFileContents = wx.TextCtrl(panel,wx.ID_ANY,style=wx.TE_AUTO_SCROLL|wx.TE_READONLY|wx.TE_MULTILINE)
updateButton = wx.Button(panel,wx.ID_ANY,label="Update")
sizer.Add(self._logFileContents,1,wx.ALL|wx.EXPAND,5)
sizer.Add(updateButton,0,wx.ALL|wx.EXPAND,5)
panel.SetSizer(sizer)
self.update()
self.Bind(wx.EVT_BUTTON,self.on_update,updateButton)
def update(self):
logfile = os.path.join(PLATFORM.application_directory(),"mdanse.log")
if os.path.exists(logfile):
with open(logfile,"r") as f:
self._logFileContents.SetValue(f.read())
def on_update(self,event):
self.update()
......@@ -27,7 +27,7 @@
'''
Created on Apr 14, 2015
@author: Bachir Aoun, Eric C. pellegrini
@author: Bachir Aoun, Gael Goret and Eric C. pellegrini
'''
import collections
......@@ -38,6 +38,7 @@ import wx.aui as aui
from MDANSE.__pkginfo__ import __version__, __revision__
from MDANSE import LOGGER, REGISTRY
from MDANSE.Framework.Jobs.Converters.Converter import Converter
from MDANSE.App.GUI import DATA_CONTROLLER
from MDANSE.App.GUI.ControllerPanel import ControllerPanel
......@@ -93,7 +94,16 @@ class MainFrame(wx.Frame):
fileMenu = wx.Menu()
loadDataItem = fileMenu.Append(wx.ID_ANY, 'Load data')
emptyDataItem = fileMenu.Append(wx.ID_ANY, 'Open empty data')
fileMenu.AppendSeparator()
converterMenu = wx.Menu()
self._converters = {}
for job in REGISTRY["job"].values():
if issubclass(job, Converter):
item = converterMenu.Append(wx.ID_ANY,job.label)
self._converters[job.label] = job.type
self.Bind(wx.EVT_MENU, self.on_open_converter, item)
fileMenu.AppendMenu(wx.ID_ANY,'Trajectory converters',converterMenu)
fileMenu.AppendSeparator()
quitItem = fileMenu.Append(wx.ID_ANY, 'Quit')
......@@ -118,7 +128,6 @@ class MainFrame(wx.Frame):
self.Bind(wx.EVT_CLOSE, self.on_quit)
self.Bind(wx.EVT_MENU, self.on_load_data, loadDataItem)
self.Bind(wx.EVT_MENU, self.on_load_empty_data, emptyDataItem)
self.Bind(wx.EVT_MENU, self.on_quit, quitItem)
self.Bind(wx.EVT_MENU, self.on_about, aboutItem)
self.Bind(wx.EVT_MENU, self.on_toggle_data_tree, showDataTreeItem)
......@@ -132,12 +141,12 @@ class MainFrame(wx.Frame):
self._toolbar = self.CreateToolBar()
loadDataButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["load",32,32], 'Load a trajectory')
emptyDataButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["empty_data",32,32], 'Open an empty data (converters ...)')
databaseButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["periodic_table",32,32], 'Edit the MDANSE elements database')
plotButton = self._toolbar.AddSimpleTool(wx.ID_ANY,ICONS["plot",32,32], 'Open MDANSE plotter')
userButton = self._toolbar.AddSimpleTool(wx.ID_ANY,ICONS["user",32,32], 'Edit the user definitions')
udButton = self._toolbar.AddSimpleTool(wx.ID_ANY,ICONS["user",32,32], 'Edit the user definitions')
preferencesButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["preferences",32,32], 'Edit the preferences')
logfileButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["logfile",32,32], 'Display nMOLDYN log file')
logfileButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["logfile",32,32], 'Display MDANSE log file')
registryButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["registry",32,32], 'Inspect MDANSE classes registry')
helpButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["help",32,32], 'Help')
websiteButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["web",32,32], 'Open MDANSE website')
aboutButton = self._toolbar.AddSimpleTool(wx.ID_ANY, ICONS["about",32,32], 'About MDANSE')
......@@ -150,16 +159,16 @@ class MainFrame(wx.Frame):
# The toolbar-related events handlers.
self.Bind(wx.EVT_MENU, self.on_load_data, loadDataButton)
self.Bind(wx.EVT_MENU, self.on_load_empty_data, emptyDataButton)
self.Bind(wx.EVT_MENU, self.on_open_nmoldyn_elements_database, databaseButton)
self.Bind(wx.EVT_MENU, self.on_open_mdanse_elements_database, databaseButton)
self.Bind(wx.EVT_MENU, self.on_start_plotter, plotButton)
self.Bind(wx.EVT_MENU, self.on_start_UDviewer, userButton)
self.Bind(wx.EVT_MENU, self.on_set_preferences, preferencesButton)
self.Bind(wx.EVT_MENU, self.on_display_logfile, logfileButton)
self.Bind(wx.EVT_MENU, self.on_open_user_definitions, udButton)
self.Bind(wx.EVT_MENU, self.on_open_classes_registry, registryButton)
self.Bind(wx.EVT_MENU, self.on_about, aboutButton)
self.Bind(wx.EVT_MENU, self.on_quit, quitButton)
self.Bind(wx.EVT_MENU, self.on_help, helpButton)
self.Bind(wx.EVT_MENU, self.on_open_nmoldyn_url, websiteButton)
self.Bind(wx.EVT_MENU, self.on_open_mdanse_url, websiteButton)
self.Bind(wx.EVT_MENU, self.on_bug_report, bugButton)
def load_data(self,typ,filename):
......@@ -197,11 +206,10 @@ In order to facilitate the integration of new features and bug fixes, please sen
https://github.com/eurydyce/MDANSE/tree/master/MDANSE
for any other request, do not hesitate to send an email to:
for any other request, please send an email to:
\tpellegrini@ill.fr
\tjohnson@ill.fr
\tgonzalezm@ill.fr
or directly to the MDANSE mailing list:
......@@ -214,12 +222,20 @@ or directly to the MDANSE mailing list:
def on_display_logfile(self,event):
from nMOLDYN.GUI.Widgets.LogfileFrame import LogfileFrame
from MDANSE.App.GUI.LogfileFrame import LogfileFrame
f = LogfileFrame(self)
f.Show()
def on_open_classes_registry(self,event):
from MDANSE.App.GUI.Framework.Plugins.RegistryViewerPlugin import RegistryViewerFrame
f = RegistryViewerFrame(self)
f.Show()
def on_help(self, event):
webbrowser.open('http://www.ill.eu/fileadmin/users_files/img/instruments_and_support/support_facilities/computing_for_science/Computing_for_Science/CS_Software/nMoldyn/documentation/index.html')
......@@ -246,19 +262,32 @@ or directly to the MDANSE mailing list:
LOGGER("Data %r successfully loaded" % filename, "info")
def on_load_empty_data(self,event):
def on_open_user_definitions(self,event):
from MDANSE.App.GUI.Framework.Plugins.UserDefinitionViewerPlugin import UserDefinitionViewerFrame
self.load_data('empty_data', None)
f = UserDefinitionViewerFrame(self)
f.Show()
def on_open_nmoldyn_elements_database(self, event):
def on_open_converter(self,event):
from nMOLDYN.Framework.Plugins.PeriodicTablePlugin import PeriodicTableFrame
item = self.GetMenuBar().FindItemById(event.GetId())
convLabel = item.GetText()
from MDANSE.App.GUI.Framework.Plugins.JobPlugin import JobFrame
f = JobFrame(self,self._converters[convLabel])
f.Show()
def on_open_mdanse_elements_database(self, event):
from MDANSE.App.GUI.Framework.Plugins.PeriodicTablePlugin import PeriodicTableFrame
f = PeriodicTableFrame(None)
f.Show()
def on_open_nmoldyn_url(self, event):
def on_open_mdanse_url(self, event):
webbrowser.open('http://www.ill.eu/fr/instruments-support/computing-for-science/cs-software/all-software/nmoldyn/')
......@@ -269,7 +298,7 @@ or directly to the MDANSE mailing list:
def on_set_preferences(self, event):
from nMOLDYN.GUI.Widgets.PreferencesSettingsDialog import PreferencesSettingsDialog
from MDANSE.App.GUI.PreferencesSettingsDialog import PreferencesSettingsDialog
d = PreferencesSettingsDialog(self)
......@@ -284,15 +313,7 @@ or directly to the MDANSE mailing list:
f = PlotterFrame(None)
f.Show()
def on_start_UDviewer(self, event = None):
from nMOLDYN.Framework.Plugins.UserDefinitionViewerPlugin import UserDefinitionViewerFrame
f = UserDefinitionViewerFrame(None)
f.Show()
def on_toggle_controller(self, event=None):
pane = self._mgr.GetPane("controller")
......