class RiverModel(wx.Frame): GO_BUTTON_ID = 10 """ Constructor for the Managerial Window. @param parent the wxFrame that the window is heriting from @param id the id of the ManagerialWindow @param title the title of of window """ def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, (500,500)) # panel self.MainPanel = wx.Panel(self, -1) self.MainPanel.SetBackgroundColour("white") self.parametersPanel = ParametersPanel(self.MainPanel) vbox = wx.BoxSizer(wx.VERTICAL) # buttons box self.goButton = wx.Button(self.MainPanel, self.GO_BUTTON_ID, 'GO') # add the boxes to the MainPanel vbox.Add(self.parametersPanel, wx.ID_ANY, wx.ALIGN_LEFT) vbox.Add(self.goButton, wx.ID_ANY, wx.ALIGN_CENTER) self.MainPanel.SetSizer(vbox) # add actions action = RiverModelAction(self) wx.EVT_BUTTON(self, self.GO_BUTTON_ID, action.OnGo) """ """ def getTSSValue(self): return self.parametersPanel.getTSSValue()
def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, (500,500)) # panel self.MainPanel = wx.Panel(self, -1) self.MainPanel.SetBackgroundColour("white") self.parametersPanel = ParametersPanel(self.MainPanel) vbox = wx.BoxSizer(wx.VERTICAL) # buttons box self.goButton = wx.Button(self.MainPanel, self.GO_BUTTON_ID, 'GO') # add the boxes to the MainPanel vbox.Add(self.parametersPanel, wx.ID_ANY, wx.ALIGN_LEFT) vbox.Add(self.goButton, wx.ID_ANY, wx.ALIGN_CENTER) self.MainPanel.SetSizer(vbox) # add actions action = RiverModelAction(self) wx.EVT_BUTTON(self, self.GO_BUTTON_ID, action.OnGo)
class ParametersFrame(wx.Frame): def __init__(self, parent, size = (300,300), pos = (0,0), data = None): wx.Frame.__init__(self, parent, -1, 'Parameters', size = size, pos = pos) panel = wx.Panel(self) self.createMenuBar() self.data = data self.parent = parent self.isFocused = True self.nb = wx.Notebook(panel, style=wx.NB_TOP) topZeroPanel = wx.Panel(self.nb) topPolePanel = wx.Panel(self.nb) self.zeroPanel = ParametersPanel(topZeroPanel, data = self.data) self.polePanel = ParametersPanel(topPolePanel, data = self.data) self.zeroSizer = wx.BoxSizer(wx.VERTICAL) self.poleSizer = wx.BoxSizer(wx.VERTICAL) self.zeroButtonSizer = wx.BoxSizer(wx.HORIZONTAL) self.poleButtonSizer = wx.BoxSizer(wx.HORIZONTAL) self.addZeroButton = wx.Button(topZeroPanel, label = 'Add Zero') self.deleteZeroButton = wx.Button(topZeroPanel, label = 'Delete Zero') self.addPoleButton = wx.Button(topPolePanel, label = 'Add Pole') self.deletePoleButton = wx.Button(topPolePanel, label = 'Delete Pole') self.addZeroButton.Bind(wx.EVT_BUTTON, self.OnAddZeroButton) self.deleteZeroButton.Bind(wx.EVT_BUTTON, self.OnDeleteZeroButton) self.addPoleButton.Bind(wx.EVT_BUTTON, self.OnAddPoleButton) self.deletePoleButton.Bind(wx.EVT_BUTTON, self.OnDeletePoleButton) self.zeroComboBox = wx.ComboBox(topZeroPanel, name = 'Zeroes', choices = self.data.getZeroes()) self.poleComboBox = wx.ComboBox(topPolePanel, name = 'Poles', choices = self.data.getPoles()) self.zeroComboBox.Bind(wx.EVT_COMBOBOX, self.OnZeroComboBox) self.poleComboBox.Bind(wx.EVT_COMBOBOX, self.OnPoleComboBox) self.zeroButtonSizer.Add(self.addZeroButton, proportion = 1, flag = wx.EXPAND) self.zeroButtonSizer.Add(self.deleteZeroButton, proportion = 1, flag = wx.EXPAND) self.poleButtonSizer.Add(self.addPoleButton, proportion = 1, flag = wx.EXPAND) self.poleButtonSizer.Add(self.deletePoleButton, proportion = 1, flag = wx.EXPAND) self.zeroSizer.Add(self.zeroComboBox, flag = wx.EXPAND) self.zeroSizer.Add(self.zeroButtonSizer, flag =wx.EXPAND) self.zeroSizer.Add(self.zeroPanel, flag =wx.EXPAND) self.poleSizer.Add(self.poleComboBox, flag = wx.EXPAND) self.poleSizer.Add(self.poleButtonSizer, flag =wx.EXPAND) self.poleSizer.Add(self.polePanel, flag =wx.EXPAND) topZeroPanel.SetSizer(self.zeroSizer) topZeroPanel.Fit() topPolePanel.SetSizer(self.poleSizer) topPolePanel.Fit() self.nb.AddPage(topZeroPanel, "Zeroes") self.nb.AddPage(topPolePanel, "Poles") self.nb.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChange) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(self.nb, 1, wx.EXPAND) panel.SetSizer(mainSizer) panel.Fit() panel.Bind(wx.EVT_IDLE, self.OnIdle) panel.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterWindow) panel.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow) def OnEnterWindow(self, event): self.isFocused = True print 'focus on' def OnLeaveWindow(self, event): self.isFocused = False print 'focus off' def OnIdle(self, event): if not self.isFocused: if self.nb.GetSelection() == 0 and self.data.getActiveMonomial() is not None: self.zeroPanel.updateCtrls() self.zeroPanel.updateSliders() elif self.nb.GetSelection() == 1 and self.data.getActiveMonomial() is not None: self.polePanel.updateCtrls() self.polePanel.updateSliders() event.Skip() def OnPageChange(self, event): if self.nb.GetSelection() == 0: print 'switch to page zero' print 'selected: ' + self.zeroComboBox.GetStringSelection() self.data.activate(self.data.getZeroByName(self.zeroComboBox.GetStringSelection())) print 'active name: ' + self.data.getActiveMonomial().getName() else: self.data.activate(self.data.getPoleByName(self.poleComboBox.GetStringSelection())) def OnZeroComboBox(self, event): print self.zeroComboBox.GetStringSelection() self.data.activate(self.data.getZeroByName(self.zeroComboBox.GetStringSelection())) self.zeroPanel.updateCtrls() self.zeroPanel.updateSliders() event.Skip() def OnPoleComboBox(self, event): self.data.activate(self.data.getPoleByName(self.poleComboBox.GetStringSelection())) self.polePanel.updateCtrls() self.polePanel.updateCtrls() event.Skip() def OnAddZeroButton(self, event): self.data.addZero(complex(0)) #for z in self.data.getZeroes(): #print z.getName() + 'x: ' + str(z.getReal()) + ' | y: ' + str(z.getImag()) self.zeroComboBox.Append(self.data.getActiveMonomial().getName()) self.zeroComboBox.Select(self.zeroComboBox.GetCount() - 1) self.zeroPanel.updateCtrls() self.zeroPanel.updateSliders() def OnDeleteZeroButton(self, event): self.zeroComboBox.Delete(self.zeroComboBox.FindString(self.data.getActiveMonomial().getName())) self.data.deleteActiveZero() self.zeroComboBox.Select(self.zeroComboBox.GetCount() - 1) self.data.activate(self.data.getZeroByName(self.zeroComboBox.GetSelection())) self.zeroPanel.updateCtrls() self.zeroPanel.updateSliders() def OnAddPoleButton(self, event): self.data.addPole(complex(0)) self.poleComboBox.Append(self.data.getActiveMonomial().getName()) self.poleComboBox.Select(self.poleComboBox.GetCount() - 1) self.polePanel.updateCtrls() self.polePanel.updateSliders() def OnDeletePoleButton(self, event): self.poleComboBox.Delete(self.poleComboBox.FindString(self.data.getActiveMonomial().getName())) self.data.deleteActivePole() self.poleComboBox.Select(self.poleComboBox.GetCount() - 1) self.data.activate(self.data.getPoleByName(self.poleComboBox.GetSelection())) self.polePanel.updateCtrls() self.polePanel.updateSliders() def menuData(self): return[('&File', ( ('&New', 'New Filter File', self.OnNew), ('&Open', 'Open Filter File', self.OnOpen), ('&Save', 'Save Filter File', self.OnSave), ('','',''), ('E&xport', ( ('&Jsfx', 'Export to JSFX plugin', self.OnExportJSFX, wx.ITEM_NORMAL), ('&Faust', 'Export to Faust code', self.OnExportFaust, wx.ITEM_NORMAL))), ('','',''), ('&Quit', 'Quit Program', self.OnQuit)))] def createMenuBar(self): menuBar = wx.MenuBar() for eachMenuData in self.menuData(): menuLabel = eachMenuData[0] menuItems = eachMenuData[1] menuBar.Append(self.createMenu(menuItems), menuLabel) self.SetMenuBar(menuBar) def createMenu(self, menuData): menu = wx.Menu() for eachItem in menuData: if len(eachItem) == 2: label = eachItem[0] subMenu = self.createMenu(eachItem[1]) menu.AppendMenu(wx.NewId(), label, subMenu) else: #print eachItem self.createMenuItem(menu, *eachItem) return menu def createMenuItem(self, menu, label, status, handler, kind = wx.ITEM_NORMAL): if not label: menu.AppendSeparator() return menuItem = menu.Append(-1, label, status, kind) self.Bind(wx.EVT_MENU, handler, menuItem) def OnNew(self): pass def OnOpen(self): pass def OnSave(self): pass #used as test for polynomial generation for now #must find a way to convert ComplexPoints to Monomials before calling polynomial def OnExportJSFX(self, event): #z = Polynomial(self.data.zeroes) #p = Polynomial(self.data.poles) for z in self.data.getZeroes(): print "data :" + str(vars(z)) + 'data.getZeroes()' fract = dataToPolyFract(self.data) print fract """ for e in fract.getNum().getMonomials(): print str(vars(e)) + 'fract.getNum().getMonomials()' for e in fract.getDen().getMonomials(): print str(vars(e)) + 'fract.getDen().getMonomials()' """ def OnExportFaust(self): pass def OnQuit(self): pass
def __init__(self, parent, size = (300,300), pos = (0,0), data = None): wx.Frame.__init__(self, parent, -1, 'Parameters', size = size, pos = pos) panel = wx.Panel(self) self.createMenuBar() self.data = data self.parent = parent self.isFocused = True self.nb = wx.Notebook(panel, style=wx.NB_TOP) topZeroPanel = wx.Panel(self.nb) topPolePanel = wx.Panel(self.nb) self.zeroPanel = ParametersPanel(topZeroPanel, data = self.data) self.polePanel = ParametersPanel(topPolePanel, data = self.data) self.zeroSizer = wx.BoxSizer(wx.VERTICAL) self.poleSizer = wx.BoxSizer(wx.VERTICAL) self.zeroButtonSizer = wx.BoxSizer(wx.HORIZONTAL) self.poleButtonSizer = wx.BoxSizer(wx.HORIZONTAL) self.addZeroButton = wx.Button(topZeroPanel, label = 'Add Zero') self.deleteZeroButton = wx.Button(topZeroPanel, label = 'Delete Zero') self.addPoleButton = wx.Button(topPolePanel, label = 'Add Pole') self.deletePoleButton = wx.Button(topPolePanel, label = 'Delete Pole') self.addZeroButton.Bind(wx.EVT_BUTTON, self.OnAddZeroButton) self.deleteZeroButton.Bind(wx.EVT_BUTTON, self.OnDeleteZeroButton) self.addPoleButton.Bind(wx.EVT_BUTTON, self.OnAddPoleButton) self.deletePoleButton.Bind(wx.EVT_BUTTON, self.OnDeletePoleButton) self.zeroComboBox = wx.ComboBox(topZeroPanel, name = 'Zeroes', choices = self.data.getZeroes()) self.poleComboBox = wx.ComboBox(topPolePanel, name = 'Poles', choices = self.data.getPoles()) self.zeroComboBox.Bind(wx.EVT_COMBOBOX, self.OnZeroComboBox) self.poleComboBox.Bind(wx.EVT_COMBOBOX, self.OnPoleComboBox) self.zeroButtonSizer.Add(self.addZeroButton, proportion = 1, flag = wx.EXPAND) self.zeroButtonSizer.Add(self.deleteZeroButton, proportion = 1, flag = wx.EXPAND) self.poleButtonSizer.Add(self.addPoleButton, proportion = 1, flag = wx.EXPAND) self.poleButtonSizer.Add(self.deletePoleButton, proportion = 1, flag = wx.EXPAND) self.zeroSizer.Add(self.zeroComboBox, flag = wx.EXPAND) self.zeroSizer.Add(self.zeroButtonSizer, flag =wx.EXPAND) self.zeroSizer.Add(self.zeroPanel, flag =wx.EXPAND) self.poleSizer.Add(self.poleComboBox, flag = wx.EXPAND) self.poleSizer.Add(self.poleButtonSizer, flag =wx.EXPAND) self.poleSizer.Add(self.polePanel, flag =wx.EXPAND) topZeroPanel.SetSizer(self.zeroSizer) topZeroPanel.Fit() topPolePanel.SetSizer(self.poleSizer) topPolePanel.Fit() self.nb.AddPage(topZeroPanel, "Zeroes") self.nb.AddPage(topPolePanel, "Poles") self.nb.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.OnPageChange) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(self.nb, 1, wx.EXPAND) panel.SetSizer(mainSizer) panel.Fit() panel.Bind(wx.EVT_IDLE, self.OnIdle) panel.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterWindow) panel.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow)