def OnMarket(self,evt): t = self.editMarket.GetClientData(self.editMarket.GetSelection()) debug("OnMarket %s" % t) if self.m_market != t: self.m_market = t self.m_place = market2place(t) self.m_country = compute_country(self.m_isin,self.m_market,self.m_place) self.fillPlaces() self.refreshPage(evt)
def OnISINEdited(self, event): self.m_isin = event.GetString() if len(self.m_isin) > 1: market = isin2market(self.m_isin) #print 'market: ',market if market: self.m_market = market self.m_place = market2place(market) self.m_currency = market2currency(market) self.refreshPage(event)
def OnMarket(self, evt): t = self.editMarket.GetClientData(self.editMarket.GetSelection()) debug("OnMarket %s" % t) if self.m_market != t: self.m_market = t self.m_place = market2place(t) self.m_country = compute_country(self.m_isin, self.m_market, self.m_place) self.fillPlaces() self.refreshPage(evt)
def OnISINEdited(self,event): self.m_isin = event.GetString() if len(self.m_isin)>1: market = isin2market(self.m_isin) #print 'market: ',market if market: self.m_market = market self.m_place = market2place(market) self.m_currency = market2currency(market) self.refreshPage(event)
def get(self,market,qlist,qtag,place=None,name=None): if place==None: place = market2place(market) if name: for amarket,aplace,adefault,aconnector,aqlist,aqtag in self.m_conn: #print amarket,aqlist,aqtag,aplace,aconnector.name(),adefault if market==amarket and place==aplace and aconnector.name()==name and (aqlist==QLIST_ANY or aqlist==qlist) and (qtag==QTAG_ANY or aqtag==qtag): return aconnector else: for amarket,aplace,adefault,aconnector,aqlist,aqtag in self.m_conn: if market==amarket and place==aplace and (aqlist==QLIST_ANY or qlist==aqlist) and adefault and (qtag==QTAG_ANY or aqtag==qtag): return aconnector return None
def __init__(self, parent, quote, filter = False, market = None, filterEnabled=True, tradableOnly=False): iTradeSizedDialog.__init__(self,parent,-1,message('quote_select_title'), size=(460, 460),style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) self.m_parent = parent # init if quote: self.m_isin = quote.isin() self.m_ticker = quote.ticker() self.m_market = quote.market() self.m_place = quote.place() else: self.m_isin = '' self.m_ticker = '' self.m_market = market self.m_place = market2place(market) self.m_filter = filter self.m_qlist = QLIST_ALL self.m_qlist_tradableOnly = tradableOnly self.m_editing = True tID = wx.NewId() self.m_imagelist = wx.ImageList(16,16) self.sm_q = self.m_imagelist.Add(wx.Bitmap(os.path.join(itrade_config.dirRes, 'quote.png'))) self.sm_i = self.m_imagelist.Add(wx.Bitmap(os.path.join(itrade_config.dirRes, 'invalid.png'))) self.sm_up = self.m_imagelist.Add(wx.Bitmap(os.path.join(itrade_config.dirRes, 'sm_up.png'))) self.sm_dn = self.m_imagelist.Add(wx.Bitmap(os.path.join(itrade_config.dirRes, 'sm_down.png'))) # container container = self.GetContentsPane() container.SetSizerType("vertical") # resizable pane pane = sc.SizedPanel(container, -1) pane.SetSizerType("horizontal") pane.SetSizerProps(expand=True) # pane : ISIN or Name selection label = wx.StaticText(pane, -1, message('quote_select_isin')) label.SetSizerProps(valign='center') tID = wx.NewId() self.wxIsinCtrl = wx.TextCtrl(pane, tID, self.m_isin) self.wxIsinCtrl.SetSizerProps(expand=True) wx.EVT_TEXT(self, tID, self.OnISINEdited) label = wx.StaticText(pane, -1, message('quote_select_ticker')) label.SetSizerProps(valign='center') tID = wx.NewId() self.wxTickerCtrl = wx.TextCtrl(pane, tID, self.m_ticker) self.wxTickerCtrl.SetSizerProps(expand=True) wx.EVT_TEXT(self, tID, self.OnTickerEdited) # resizable pane pane = sc.SizedPanel(container, -1) pane.SetSizerType("horizontal") pane.SetSizerProps(expand=True) # pane : market & list filters self.wxLabelMarketCtrl = wx.StaticText(pane, -1, message('quote_select_market')) self.wxLabelMarketCtrl.SetSizerProps(valign='center') self.wxMarketCtrl = wx.ComboBox(pane,-1, "", style=wx.CB_DROPDOWN|wx.CB_READONLY) self.wxMarketCtrl.SetSizerProps(expand=True) wx.EVT_COMBOBOX(self,self.wxMarketCtrl.GetId(),self.OnMarket) count = 0 idx = 0 for eachCtrl in list_of_markets(bFilterMode=False): self.wxMarketCtrl.Append(eachCtrl,eachCtrl) if eachCtrl==self.m_market: idx = count count = count + 1 self.wxMarketCtrl.SetSelection(idx) self.wxLabelQListCtrl = wx.StaticText(pane, -1, message('quote_select_list')) self.wxLabelQListCtrl.SetSizerProps(valign='center') self.wxQListCtrl = wx.ComboBox(pane,-1, "", style=wx.CB_DROPDOWN|wx.CB_READONLY) self.wxQListCtrl.SetSizerProps(expand=True) wx.EVT_COMBOBOX(self,self.wxQListCtrl.GetId(),self.OnQuoteList) self.wxQListCtrl.Append(message('quote_select_alllist'),QLIST_ALL) self.wxQListCtrl.Append(message('quote_select_syslist'),QLIST_SYSTEM) self.wxQListCtrl.Append(message('quote_select_usrlist'),QLIST_USER) if not self.m_qlist_tradableOnly: self.wxQListCtrl.Append(message('quote_select_indiceslist'),QLIST_INDICES) self.wxQListCtrl.Append(message('quote_select_trackerslist'),QLIST_TRACKERS) self.wxQListCtrl.SetSelection(self.m_qlist) # select traded or not tID = wx.NewId() self.wxFilterCtrl = wx.CheckBox(container, tID, message('quote_select_filterfield')) self.wxFilterCtrl.SetValue(self.m_filter) wx.EVT_CHECKBOX(self, tID, self.OnFilter) self.wxFilterCtrl.Enable(filterEnabled) # List self.m_list = iTradeSelectorListCtrl(container, tID, style = wx.LC_REPORT | wx.SUNKEN_BORDER,size=(440, 380)) self.m_list.SetSizerProps(expand=True) self.m_list.SetImageList(self.m_imagelist, wx.IMAGE_LIST_SMALL) # Now that the list exists we can init the other base class, # see wxPython/lib/mixins/listctrl.py wxl.ColumnSorterMixin.__init__(self, 5) wx.EVT_LIST_COL_CLICK(self, tID, self.OnColClick) wx.EVT_LIST_ITEM_ACTIVATED(self, tID, self.OnItemActivated) wx.EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected) # Last Row : OK and Cancel btnpane = sc.SizedPanel(container, -1) btnpane.SetSizerType("horizontal") btnpane.SetSizerProps(expand=True) # context help if wx.Platform != "__WXMSW__": btn = wx.ContextHelpButton(btnpane) # OK self.wxOK = wx.Button(btnpane, wx.ID_OK, message('valid')) self.wxOK.SetDefault() self.wxOK.SetHelpText(message('valid_desc')) wx.EVT_BUTTON(self, wx.ID_OK, self.OnValid) # CANCEL btn = wx.Button(btnpane, wx.ID_CANCEL, message('cancel')) btn.SetHelpText(message('cancel_desc')) # set the right filter and fit everything self.OnFilter() EVT_POSTINIT(self, self.OnPostInit) wx.PostEvent(self,PostInitEvent())