예제 #1
0
    def setUp(self) -> None:
        self.app = wx.App()
        self.frame = wx.Frame(None)

        self.combobox = wx.ComboCtrl(self.frame,
                                     size=(180, -1),
                                     style=wx.CB_READONLY)
        self._popup_ctrl = ListBoxComboPopup(self.combobox)
        self.combobox.SetPopupControl(self._popup_ctrl)

        self._lb_popup_ctr = self._popup_ctrl.GetControl()

        # Call directly the ListBoxWithHeaders methods
        self._lb_popup_ctr.add_header("Header")
        self._lb_popup_ctr.add_items(["item%s" % i for i in range(10)])
예제 #2
0
    def __init__(self, parent, log):
        self.log = log
        wx.Panel.__init__(self, parent, -1)

        comboCtrl = wx.ComboCtrl(self, wx.ID_ANY, "", (20,20))

        popupCtrl = ListCtrlComboPopup()

        # It is important to call SetPopupControl() as soon as possible
        comboCtrl.SetPopupControl(popupCtrl)

        # Populate using wx.ListView methods
        popupCtrl.AddItem("First Item")
        popupCtrl.AddItem("Second Item")
        popupCtrl.AddItem("Third Item")
예제 #3
0
    def test_init(self):
        choices = ["item0", "item1", "item2"]
        combobox = wx.ComboCtrl(self.frame,
                                size=(180, -1),
                                style=wx.CB_READONLY)
        popup_ctrl = ListBoxComboPopup(combobox)
        combobox.SetPopupControl(popup_ctrl)

        lb_popup_ctr = popup_ctrl.GetControl()
        lb_popup_ctr.AppendItems(choices)

        popup_ctrl.SetStringSelection("item1")

        self.assertEqual(popup_ctrl.GetStringValue(), "item1")
        self.assertEqual(popup_ctrl.GetSelection(), 1)
        self.assertEqual(lb_popup_ctr.GetCount(), 3)
예제 #4
0
    def __init__(self, parent, log):
        self.log = log
        wx.Panel.__init__(self, parent, -1)

        fgs = wx.FlexGridSizer(cols=3, hgap=10, vgap=10)

        cc = wx.ComboCtrl(self, size = (250, -1))
        tcp = CheckboxComboPopup()
        cc.SetPopupControl(tcp)
        fgs.Add(cc)
        fgs.Add((10,10))
        fgs.Add(wx.StaticText(self, -1, "Checkbox Combo"))

        box = wx.BoxSizer()
        box.Add(fgs, 1, wx.EXPAND|wx.ALL, 20)
        self.SetSizer(box)
예제 #5
0
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, title='combo1.py')
        pnl = wx.Panel(self)

        # Create a ComboCtrl
        cc = self.cc = wx.ComboCtrl(pnl, pos=(10,10), size=(275,-1))
        cc.SetHint('Click the button -->')

        # Create a Popup
        popup = ListCtrlComboPopup()

        # Associate them with each other.  This also triggers the
        # creation of the ListCtrl.
        cc.SetPopupControl(popup)

        # Add some items to the listctrl.
        for x in range(75):
            popup.AddItem("Item-%02d" % x)
예제 #6
0
 def getWidget(self, parent, *args, **options):
     # self.widget = wx.ComboCtrl(parent)
     self.comboCtrl = wx.ComboCtrl(parent)
     self.comboCtrl.OnButtonClick = self.onButton
     self.foo = ListCtrlComboPopup()
     self.comboCtrl.SetPopupControl(self.foo)
     self.listbox = wx.ListBox(self,
                               choices=self._meta['choices'],
                               style=wx.LB_SINGLE)
     # model is created here because the design of these widget
     # classes is broken.
     self.model = FilterableDropdownModel(self._meta['choices'],
                                          self._options,
                                          listeners=[self.interpretState])
     # overriding this to false removes it from tab behavior.
     # and keeps the tabbing at the top-level widget level
     self.listbox.AcceptsFocusFromKeyboard = lambda *args, **kwargs: False
     return self.comboCtrl
예제 #7
0
    def __init__(self, parent, entry: "EntryFlagsEnum"):
        super().__init__(parent)
        self.entry = entry

        obj = self.entry.obj

        # Test if the obj of the entry is available
        if obj is None:
            return

        # Obj
        hsizer = wx.BoxSizer(wx.HORIZONTAL)

        choices = [
            f"{value} ({str(name)})"
            for name, value in self.entry.construct.flags.items()
        ]
        checked_items = []
        for key in obj.keys():
            if key.startswith("_"):
                continue
            if obj[key]:
                checked_items.append(len(checked_items))

        self.combo_ctrl = wx.ComboCtrl(self, style=wx.CB_READONLY)
        self.popup_ctrl = FlagsEnumComboPopup(self.entry, self._on_obj_changed)
        self.combo_ctrl.SetPopupControl(self.popup_ctrl)

        self.popup_ctrl.clbx.InsertItems(choices, 0)
        self.popup_ctrl.clbx.SetCheckedItems(checked_items)
        self.combo_ctrl.SetValue(self.entry.obj_str)

        hsizer.Add(self.combo_ctrl, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 0)

        self.SetSizer(hsizer)
        self.Layout()
    def __init__(self, parent, saved_text=""):
        wx.Panel.__init__(self, parent)
        self.parent = parent
        self.user_settings = self.parent.user_settings
        if self.user_settings.get_text_mining_model() == "sklearn":
            self.ml_model = SKLearnLDA()
        else:
            self.ml_model = GensimLDA()

        if self.user_settings.get_is_general_font_size_enabled():
            font_size = self.user_settings.get_general_font_size()
        else:
            font_size = self.user_settings.get_composer_tab_font_size()
        self.SetFont(
            wx.Font(font_size, wx.MODERN, wx.NORMAL, wx.NORMAL, False,
                    u'Consolas'))

        self.user_profile = self.parent.user_profile

        self.SetBackgroundColour(self.user_settings.get_background_color())
        if self.user_profile.username == "guest":
            self.compose_tab_sizer = wx.FlexGridSizer(5, 1, 0, 0)
        else:
            self.compose_tab_sizer = wx.FlexGridSizer(7, 1, 0, 0)

        self.compose_tab_sizer.AddGrowableRow(0, proportion=1)
        self.compose_tab_sizer.AddGrowableRow(1, proportion=1)
        if self.user_profile.username == "guest":
            self.compose_tab_sizer.AddGrowableRow(2, proportion=15)
            self.compose_tab_sizer.AddGrowableRow(3, proportion=1)
            self.compose_tab_sizer.AddGrowableRow(4, proportion=15)
        else:
            self.compose_tab_sizer.AddGrowableRow(2, proportion=1)
            self.compose_tab_sizer.AddGrowableRow(3, proportion=15)
            self.compose_tab_sizer.AddGrowableRow(4, proportion=1)
            self.compose_tab_sizer.AddGrowableRow(5, proportion=1)
            self.compose_tab_sizer.AddGrowableRow(6, proportion=15)
        self.compose_tab_sizer.AddGrowableCol(0)

        self.top_buttons_sizer = wx.BoxSizer(wx.HORIZONTAL)

        self.tts_button = wx.Button(self, label="Text To Speech")
        self.tts_button.SetCursor(wx.Cursor(wx.CURSOR_HAND))
        self.tts_button.Bind(wx.EVT_BUTTON, self.OnTTS)

        self.stt_button = wx.Button(self, label="Speech To Text")
        self.stt_button.SetCursor(wx.Cursor(wx.CURSOR_HAND))
        self.stt_button.Bind(wx.EVT_BUTTON, self.OnSTT)

        self.top_buttons_sizer.Add(self.tts_button, 1, wx.ALIGN_CENTER)
        self.top_buttons_sizer.Add(self.stt_button, 1, wx.ALIGN_CENTER)

        self.emojis_intext_panel = EmojisTextMiningPanel(self)

        self.editor_emojis_sizer = wx.FlexGridSizer(1, 2, 0, 0)
        self.editor_emojis_sizer.AddGrowableCol(0, proportion=4)
        self.editor_emojis_sizer.AddGrowableCol(1, proportion=1)
        self.editor_emojis_sizer.AddGrowableRow(0)
        self.editor = wx.TextCtrl(self, style=wx.TE_MULTILINE)
        self.editor.SetValue(saved_text)
        self.editor_emojis_sizer.Add(
            self.editor, 1,
            wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5)
        self.editor_emojis_sizer.Add(
            self.emojis_intext_panel, 1,
            wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5)

        self.emojis_tab = EmojiDBTab(self, composer=True)

        self.stt_result = wx.StaticText(self)

        # this is only used if a user is logged in
        self.save_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.save_button = wx.Button(self, label="Save Text")
        self.save_button.Bind(wx.EVT_BUTTON, self.OnSave)
        self.save_button.SetCursor(wx.Cursor(wx.CURSOR_HAND))
        self.save_response = wx.StaticText(self)
        self.save_sizer.Add(self.save_button, 1, wx.ALIGN_CENTER)
        self.save_sizer.AddSpacer(20)
        self.save_sizer.Add(self.save_response, 1, wx.ALIGN_CENTER)

        # 3 autocomplete options
        self.auto_complete_options = wx.BoxSizer(wx.HORIZONTAL)

        self.auto_comp_opt1 = wx.Button(self,
                                        style=wx.BORDER_NONE | wx.BU_EXACTFIT)
        self.auto_comp_opt1.Bind(wx.EVT_BUTTON, self.OnPressAutoCorrect)
        self.auto_comp_opt1.SetFont(
            wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL, True, u'Consolas'))
        self.auto_comp_opt1.SetBackgroundColour(self.GetBackgroundColour())
        self.auto_comp_opt1.SetCursor(wx.Cursor(wx.CURSOR_HAND))
        self.auto_complete_options.Add(self.auto_comp_opt1, 1, wx.ALIGN_CENTER)
        self.auto_complete_options.AddSpacer(20)

        self.auto_comp_opt2 = wx.Button(self,
                                        style=wx.BORDER_NONE | wx.BU_EXACTFIT)
        self.auto_comp_opt2.Bind(wx.EVT_BUTTON, self.OnPressAutoCorrect)
        self.auto_comp_opt2.SetFont(
            wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL, True, u'Consolas'))
        self.auto_comp_opt2.SetBackgroundColour(self.GetBackgroundColour())
        self.auto_comp_opt2.SetCursor(wx.Cursor(wx.CURSOR_HAND))
        self.auto_complete_options.Add(self.auto_comp_opt2, 1, wx.ALIGN_CENTER)
        self.auto_complete_options.AddSpacer(20)

        self.auto_comp_opt3 = wx.Button(self,
                                        style=wx.BORDER_NONE | wx.BU_EXACTFIT)
        self.auto_comp_opt3.Bind(wx.EVT_BUTTON, self.OnPressAutoCorrect)
        self.auto_comp_opt3.SetFont(
            wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL, True, u'Consolas'))
        self.auto_comp_opt3.SetBackgroundColour(self.GetBackgroundColour())
        self.auto_comp_opt3.SetCursor(wx.Cursor(wx.CURSOR_HAND))
        self.auto_complete_options.Add(self.auto_comp_opt3, 1, wx.ALIGN_CENTER)

        self.saved_texts_options = wx.ComboCtrl(self)
        self.saved_texts_options.SetHint("Search Message")
        self.saved_texts_options.SetPopupControl(EmojiComboPopup(self))
        self.saved_texts_options.GetPopupControl().GetControl().Bind(
            wx.EVT_LIST_ITEM_ACTIVATED, self.OnSavedTextClick)
        self.saved_texts_options.Bind(wx.EVT_COMBOBOX_DROPDOWN,
                                      self.OnSavedTextSelection)

        self.compose_tab_sizer.Add(self.top_buttons_sizer, 1, wx.EXPAND)
        self.compose_tab_sizer.Add(self.stt_result, 1, wx.EXPAND)
        if self.user_profile.username != "guest":
            self.compose_tab_sizer.Add(
                self.saved_texts_options, 1,
                wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5)
        else:
            self.saved_texts_options.Hide()
        self.compose_tab_sizer.Add(
            self.editor_emojis_sizer, 1,
            wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5)

        if self.user_profile.username != "guest":
            self.compose_tab_sizer.Add(self.save_sizer, 1, wx.ALIGN_CENTER)
        else:
            self.save_button.Hide()

        self.compose_tab_sizer.Add(self.auto_complete_options, 1,
                                   wx.ALIGN_CENTER)
        self.compose_tab_sizer.Add(self.emojis_tab, 1, wx.EXPAND)

        self.editor.Bind(wx.EVT_TEXT, self.OnInputChanged)

        self.emojis_in_input = set()
        self.emoji_sentiment_ratings = None

        self.SetSizer(self.compose_tab_sizer)

        self.Layout()
예제 #9
0
    def InitUI(self):
        if self.mode == "DEBUG":
            print "In MeasurementResultsPanel"
        mainSizer = wx.BoxSizer(wx.HORIZONTAL)

        self.SetSizer(mainSizer)

        layoutSizer = wx.GridSizer(rows=4, cols=5, hgap=0, vgap=0)
        self.locale = wx.Locale(self.lang)

        #Time stuff
        timeSizer = wx.BoxSizer(wx.HORIZONTAL)
        timePanel = wx.Panel(self, style=wx.SIMPLE_BORDER)
        timePanel.SetSizer(timeSizer)

        timeTxt = wx.StaticText(timePanel,
                                label=self.timeLevelsTxtLbl,
                                style=wx.ALIGN_CENTRE_HORIZONTAL,
                                size=(50, 30))
        timeSizer.Add(timeTxt, 1, wx.EXPAND)
        # self.timeCtrl = masked.TimeCtrl(self, displaySeconds=False, size=(200, 30), style=wx.TE_CENTRE, fmt24hr = True)
        # self.timeCtrl.Bind(wx.EVT_KEY_DOWN, self.OnResetTime)
        # self.timeCtrl.SetValue(wx.DateTime_Now().FormatTime())

        #Time Header
        timeHeaderSizer = wx.BoxSizer(wx.HORIZONTAL)
        timeHeaderPanel = wx.Panel(self, style=wx.SIMPLE_BORDER)
        timeHeaderPanel.SetSizer(timeHeaderSizer)

        timeHeaderText = wx.StaticText(timeHeaderPanel,
                                       label=self.timeHeaderTxtLbl,
                                       style=wx.ALIGN_CENTRE_HORIZONTAL,
                                       size=(50, 30))
        timeHeaderSizer.Add(timeHeaderText, 1, wx.EXPAND)

        #Sensor Ref
        sensorRefSizer = wx.BoxSizer(wx.HORIZONTAL)
        sensorRefPanel = wx.Panel(self, style=wx.SIMPLE_BORDER)
        sensorRefPanel.SetSizer(sensorRefSizer)

        sensorRefTxt = wx.StaticText(sensorRefPanel,
                                     label=self.sensorRefTxtLbl,
                                     style=wx.ALIGN_CENTRE_HORIZONTAL,
                                     size=(50, 30))
        sensorRefSizer.Add(sensorRefTxt, 1, wx.EXPAND)

        #Empty Panel
        blankPanel = wx.Panel(self, style=wx.SIMPLE_BORDER)

        #Observed Val
        observedValSizer = wx.BoxSizer(wx.HORIZONTAL)
        observedValPanel = wx.Panel(self, style=wx.SIMPLE_BORDER)
        observedValPanel.SetSizer(observedValSizer)

        observedValTxt = wx.StaticText(observedValPanel,
                                       label=self.observedValTxtLbl,
                                       style=wx.ALIGN_CENTRE_HORIZONTAL,
                                       size=(50, 30))
        observedValSizer.Add(observedValTxt, 1, wx.EXPAND)

        #Sensor Val
        sensorValSizer = wx.BoxSizer(wx.HORIZONTAL)
        sensorValPanel = wx.Panel(self, style=wx.SIMPLE_BORDER)
        sensorValPanel.SetSizer(sensorValSizer)

        sensorValTxt = wx.StaticText(sensorValPanel,
                                     label=self.sensorValTxtLbl,
                                     style=wx.ALIGN_CENTRE_HORIZONTAL,
                                     size=(50, 30))
        sensorValSizer.Add(sensorValTxt, 1, wx.EXPAND)

        #Time Ctrl1
        self.timeCtrlPanel1 = DropdownTime.DropdownTime(False,
                                                        self,
                                                        style=wx.SIMPLE_BORDER)

        #Time Ctrl2
        self.timeCtrlPanel2 = DropdownTime.DropdownTime(False,
                                                        self,
                                                        style=wx.SIMPLE_BORDER)

        #Time Ctrl3
        self.timeCtrlPanel3 = DropdownTime.DropdownTime(False,
                                                        self,
                                                        style=wx.SIMPLE_BORDER)

        #Time Ctrl4
        self.timeCtrlPanel4 = DropdownTime.DropdownTime(False,
                                                        self,
                                                        style=wx.SIMPLE_BORDER)

        #Time Ctrl5
        self.timeCtrlPanel5 = DropdownTime.DropdownTime(False,
                                                        self,
                                                        style=wx.SIMPLE_BORDER)

        #SensorRef/Observed Vals
        self.sensorRefEntry1 = wx.ComboCtrl(self,
                                            style=wx.CB_SORT,
                                            size=(20, 30))
        self.popup1 = ListCtrlComboPopup(self, self.sensorRefEntry1)
        self.popup1.AppendItems(self.sensorRef)
        self.sensorRefEntry1.SetPopupControl(self.popup1)
        self.sensorRefEntry1.SetPopupMinWidth(150)
        # self.sensorRefEntry1 = wx.ComboCtrl(self, style=wx.CB_SORT|wx.TE_LEFT, size=(20, 30))
        # self.sensorRefEntry1Popup = ComboCtrlPopup()
        # self.sensorRefEntry1.SetPopupControl(ComboPopupself.sensorRefEntry1Popup)
        # self.sensorRefEntry1Popup.AddItems(self.sensorRef)
        # self.sensorRefEntry1.SetPopupMinWidth(150)

        self.observedVal1 = MyTextCtrl(self,
                                       style=wx.TE_PROCESS_ENTER
                                       | wx.TE_CENTRE,
                                       size=(20, 30))
        self.observedVal1.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)
        self.sensorVal1 = MyTextCtrl(self,
                                     style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE,
                                     size=(20, 30))
        self.sensorVal1.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)

        #col2
        self.sensorRefEntry2 = wx.ComboCtrl(self,
                                            style=wx.CB_SORT,
                                            size=(20, 30))
        self.popup2 = ListCtrlComboPopup(self, self.sensorRefEntry2)
        self.popup2.AppendItems(self.sensorRef)
        self.sensorRefEntry2.SetPopupControl(self.popup2)
        self.sensorRefEntry2.SetPopupMinWidth(150)
        # self.sensorRefEntry2 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30))
        # self.sensorRefEntry2Popup = ComboCtrlPopup()
        # self.sensorRefEntry2.SetPopupControl(self.sensorRefEntry2Popup)
        # self.sensorRefEntry2Popup.AddItems(self.sensorRef)
        # self.sensorRefEntry2.SetPopupMinWidth(150)

        self.observedVal2 = MyTextCtrl(self,
                                       style=wx.TE_PROCESS_ENTER
                                       | wx.TE_CENTRE,
                                       size=(20, 30))
        self.observedVal2.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)
        self.sensorVal2 = MyTextCtrl(self,
                                     style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE,
                                     size=(20, 30))
        self.sensorVal2.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)

        #col3
        self.sensorRefEntry3 = wx.ComboCtrl(self,
                                            style=wx.CB_SORT,
                                            size=(20, 30))
        self.popup3 = ListCtrlComboPopup(self, self.sensorRefEntry3)
        self.popup3.AppendItems(self.sensorRef)
        self.sensorRefEntry3.SetPopupControl(self.popup3)
        self.sensorRefEntry3.SetPopupMinWidth(150)
        # self.sensorRefEntry3 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30))
        # self.sensorRefEntry3Popup = ComboCtrlPopup()
        # self.sensorRefEntry3.SetPopupControl(self.sensorRefEntry3Popup)
        # self.sensorRefEntry3Popup.AddItems(self.sensorRef)
        # self.sensorRefEntry3.SetPopupMinWidth(150)

        self.observedVal3 = MyTextCtrl(self,
                                       style=wx.TE_PROCESS_ENTER
                                       | wx.TE_CENTRE,
                                       size=(20, 30))
        self.observedVal3.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)
        self.sensorVal3 = MyTextCtrl(self,
                                     style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE,
                                     size=(20, 30))
        self.sensorVal3.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)

        #Col4
        self.sensorRefEntry4 = wx.ComboCtrl(self,
                                            style=wx.CB_SORT,
                                            size=(20, 30))
        self.popup4 = ListCtrlComboPopup(self, self.sensorRefEntry4)
        self.popup4.AppendItems(self.sensorRef)
        self.sensorRefEntry4.SetPopupControl(self.popup4)
        self.sensorRefEntry4.SetPopupMinWidth(150)
        # self.sensorRefEntry4 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30))
        # self.sensorRefEntry4Popup = ComboCtrlPopup()
        # self.sensorRefEntry4.SetPopupControl(self.sensorRefEntry4Popup)
        # self.sensorRefEntry4Popup.AddItems(self.sensorRef)
        # self.sensorRefEntry4.SetPopupMinWidth(150)

        self.observedVal4 = MyTextCtrl(self,
                                       style=wx.TE_PROCESS_ENTER
                                       | wx.TE_CENTRE,
                                       size=(20, 30))
        self.observedVal4.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)
        self.sensorVal4 = MyTextCtrl(self,
                                     style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE,
                                     size=(20, 30))
        self.sensorVal4.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl)

        # #col5
        # self.sensorRefEntry5 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30))
        # self.popup5 = ListCtrlComboPopup(self, self.sensorRefEntry5)
        # self.popup5.AppendItems(self.sensorRef)
        # self.sensorRefEntry5.SetPopupControl(self.popup5)
        # self.sensorRefEntry5.SetPopupMinWidth(150)
        # # self.sensorRefEntry5 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30))
        # # self.sensorRefEntry5Popup = ComboCtrlPopup()
        # # self.sensorRefEntry5.SetPopupControl(self.sensorRefEntry5Popup)
        # # self.sensorRefEntry5Popup.AddItems(self.sensorRef)
        # # self.sensorRefEntry5.SetPopupMinWidth(150)

        # self.observedVal5 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30))
        # self.sensorVal5 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30))

        # #col6
        # self.sensorRefEntry6 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30))
        # self.popup6 = ListCtrlComboPopup(self, self.sensorRefEntry6)
        # self.popup6.AppendItems(self.sensorRef)
        # self.sensorRefEntry6.SetPopupControl(self.popup6)
        # self.sensorRefEntry6.SetPopupMinWidth(150)
        # # self.sensorRefEntry6 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30))
        # # self.sensorRefEntry6Popup = ComboCtrlPopup()
        # # self.sensorRefEntry6.SetPopupControl(self.sensorRefEntry6Popup)
        # # self.sensorRefEntry6Popup.AddItems(self.sensorRef)
        # # self.sensorRefEntry6.SetPopupMinWidth(150)

        # self.observedVal6 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30))
        # self.sensorVal6 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30))

        #Row 1
        # layoutSizer.Add(timePanel, 0, wx.EXPAND)
        layoutSizer.Add(sensorRefPanel, 0, wx.EXPAND)

        layoutSizer.Add(self.sensorRefEntry1, 0, wx.EXPAND)
        layoutSizer.Add(self.sensorRefEntry2, 0, wx.EXPAND)

        layoutSizer.Add(self.sensorRefEntry3, 0, wx.EXPAND)
        layoutSizer.Add(self.sensorRefEntry4, 0, wx.EXPAND)

        # layoutSizer.Add(self.sensorRefEntry5, 0, wx.EXPAND)
        # layoutSizer.Add(self.sensorRefEntry6, 0, wx.EXPAND)

        #Row 2

        layoutSizer.Add(timeHeaderPanel, 0, wx.EXPAND)
        layoutSizer.Add(self.timeCtrlPanel1, 0, wx.EXPAND)
        layoutSizer.Add(self.timeCtrlPanel2, 0, wx.EXPAND)

        layoutSizer.Add(self.timeCtrlPanel3, 0, wx.EXPAND)
        layoutSizer.Add(self.timeCtrlPanel4, 0, wx.EXPAND)

        # layoutSizer.Add(self.timeCtrlPanel5, 0, wx.EXPAND)
        # layoutSizer.Add(timeCtrlPanel6, 0, wx.EXPAND)

        #Row 3
        # layoutSizer.Add(self.timeCtrl, 0, wx.EXPAND)
        layoutSizer.Add(observedValPanel, 0, wx.EXPAND)

        layoutSizer.Add(self.observedVal1, 0, wx.EXPAND)
        layoutSizer.Add(self.observedVal2, 0, wx.EXPAND)

        layoutSizer.Add(self.observedVal3, 0, wx.EXPAND)
        layoutSizer.Add(self.observedVal4, 0, wx.EXPAND)

        # layoutSizer.Add(self.observedVal5, 0, wx.EXPAND)
        # layoutSizer.Add(self.observedVal6, 0, wx.EXPAND)

        #Row 4
        # layoutSizer.Add(blankPanel, 0, wx.EXPAND)
        layoutSizer.Add(sensorValPanel, 0, wx.EXPAND)

        layoutSizer.Add(self.sensorVal1, 0, wx.EXPAND)
        layoutSizer.Add(self.sensorVal2, 0, wx.EXPAND)

        layoutSizer.Add(self.sensorVal3, 0, wx.EXPAND)
        layoutSizer.Add(self.sensorVal4, 0, wx.EXPAND)

        # layoutSizer.Add(self.sensorVal5, 0, wx.EXPAND)
        # layoutSizer.Add(self.sensorVal6, 0, wx.EXPAND)

        loggerTimeTablePanel = wx.Panel(self, style=wx.SIMPLE_BORDER)
        loggerTimeTableSizer = wx.GridSizer(rows=4, cols=3, hgap=0, vgap=0)
        loggerTimeTablePanel.SetSizer(loggerTimeTableSizer)

        #Logger Time
        loggerTimeSizer = wx.BoxSizer(wx.HORIZONTAL)
        loggerTimePanel = wx.Panel(loggerTimeTablePanel,
                                   style=wx.SIMPLE_BORDER)
        loggerTimePanel.SetSizer(loggerTimeSizer)

        loggerTimeText = wx.StaticText(loggerTimePanel,
                                       label=self.loggerTimeTxtLbl,
                                       style=wx.ALIGN_CENTRE_HORIZONTAL,
                                       size=(50, 30))
        loggerTimeSizer.Add(loggerTimeText, 1, wx.EXPAND)

        #Col1
        col1Sizer = wx.BoxSizer(wx.HORIZONTAL)
        col1Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER)
        col1Panel.SetSizer(col1Sizer)

        self.col1Combo = wx.ComboBox(col1Panel,
                                     style=wx.CB_DROPDOWN,
                                     choices=self.loggers)
        col1Sizer.Add(self.col1Combo, 1, wx.EXPAND)

        #Col2
        col2Sizer = wx.BoxSizer(wx.HORIZONTAL)
        col2Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER)
        col2Panel.SetSizer(col2Sizer)

        self.col2Combo = wx.ComboBox(col2Panel,
                                     style=wx.CB_DROPDOWN,
                                     choices=self.loggers)
        col2Sizer.Add(self.col2Combo, 1, wx.EXPAND)

        #Time label
        remarkSizer = wx.BoxSizer(wx.HORIZONTAL)
        remarkPanel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER)
        remarkPanel.SetSizer(remarkSizer)

        remarkeText = wx.StaticText(remarkPanel,
                                    label=self.remarkTxtLbl,
                                    style=wx.ALIGN_CENTRE_HORIZONTAL,
                                    size=(50, 30))
        remarkSizer.Add(remarkeText, 1, wx.EXPAND)

        #Reset Column 1
        reset1Sizer = wx.BoxSizer(wx.HORIZONTAL)
        reset1Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER)
        reset1Panel.SetSizer(reset1Sizer)

        self.reset1Combo = wx.ComboBox(reset1Panel,
                                       style=wx.CB_DROPDOWN,
                                       choices=self.remarkChoice)
        reset1Sizer.Add(self.reset1Combo, 1, wx.EXPAND)

        #Reset Column 2
        reset2Sizer = wx.BoxSizer(wx.HORIZONTAL)
        reset2Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER)
        reset2Panel.SetSizer(reset2Sizer)

        self.reset2Combo = wx.ComboBox(reset2Panel,
                                       style=wx.CB_DROPDOWN,
                                       choices=self.remarkChoice)
        reset2Sizer.Add(self.reset2Combo, 1, wx.EXPAND)

        #Oberserved label
        observedSizer = wx.BoxSizer(wx.HORIZONTAL)
        observedPanel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER)
        observedPanel.SetSizer(observedSizer)

        observedeText = wx.StaticText(observedPanel,
                                      label=self.observedTimeLbl,
                                      style=wx.ALIGN_CENTRE_HORIZONTAL,
                                      size=(50, 30))
        observedSizer.Add(observedeText, 1, wx.EXPAND)

        #Time Ctrl7
        self.timeCtrlPanel7 = DropdownTime.DropdownTime(False,
                                                        loggerTimeTablePanel,
                                                        style=wx.SIMPLE_BORDER)

        #Time Ctrl8
        self.timeCtrlPanel8 = DropdownTime.DropdownTime(False,
                                                        loggerTimeTablePanel,
                                                        style=wx.SIMPLE_BORDER)

        #Sensor label
        sensorSizer = wx.BoxSizer(wx.HORIZONTAL)
        sensorPanel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER)
        sensorPanel.SetSizer(sensorSizer)

        sensoreText = wx.StaticText(sensorPanel,
                                    label=self.loggerTimeLbl,
                                    style=wx.ALIGN_CENTRE_HORIZONTAL,
                                    size=(50, 30))
        sensorSizer.Add(sensoreText, 1, wx.EXPAND)

        #Time Ctrl9
        self.timeCtrlPanel9 = DropdownTime.DropdownTime(False,
                                                        loggerTimeTablePanel,
                                                        style=wx.SIMPLE_BORDER)

        #Time Ctrl10
        self.timeCtrlPanel10 = DropdownTime.DropdownTime(
            False, loggerTimeTablePanel, style=wx.SIMPLE_BORDER)

        #Row 1
        loggerTimeTableSizer.Add(loggerTimePanel, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(col1Panel, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(col2Panel, 0, wx.EXPAND)

        #Row 2
        loggerTimeTableSizer.Add(remarkPanel, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(reset1Panel, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(reset2Panel, 0, wx.EXPAND)

        #Row 3
        loggerTimeTableSizer.Add(observedPanel, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(self.timeCtrlPanel7, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(self.timeCtrlPanel8, 0, wx.EXPAND)

        #Row 4
        loggerTimeTableSizer.Add(sensorPanel, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(self.timeCtrlPanel9, 0, wx.EXPAND)
        loggerTimeTableSizer.Add(self.timeCtrlPanel10, 0, wx.EXPAND)

        mainSizer.Add(layoutSizer, 2, wx.EXPAND)
        mainSizer.Add(loggerTimeTablePanel, 1, wx.EXPAND)
예제 #10
0
    def __init__(self, parent):
        super(General, self).__init__(parent, name='General')

        self.parent = parent
        self.add_vlv = False
        self.vlv_chg = False

        #  ==== For combo box drop down =====
        SQL_Chk = 'SELECT Size, Sch, ID_inches, ID_mm FROM PipeDimensions'
        self.tbl_data = DBase.Dbase(wx.GetTopLevelParent(self.parent).parent).Dsqldata(SQL_Chk)
        # ===================================

        chcs_1 = ['inches', 'mm']
        chcs_2 = ['feet', 'meters']
        row_lst = [['Plastics', '0.0015', '0.00006'],
                   ['A53\nA106', '0.0610', '0.00240'],
                   ['Concrete\nSmooth', '0.0400', '0.00157'],
                   ['Concrete\nRough', '2.00', '0.07874'],
                   ['Copper\nTube', '0.6100', '0.02402'],
                   ['Drawn\nTube', '0.0015', '0.00006'],
                   ['Galvanized', '0.1500','0.00591'],
                   ['Stainless\nSteel', '0.0020', '0.00008'],
                   ['Rubber\nLined', '0.0100', '0.039']]

        # one sizer to fit them all
        self.sizer = wx.BoxSizer(wx.VERTICAL)

        # top outer sizer for top2 and grd1
        top1_sizer = wx.BoxSizer(wx.HORIZONTAL)

        # top inner sizer for grd and static text box
        top2_sizer = wx.BoxSizer(wx.VERTICAL)
        grd = wx.FlexGridSizer(3,3,10,10)

        hdr1 = wx.StaticText(self, label='Pipe ID',
                             style=wx.ALIGN_LEFT)
        hdr2 = wx.StaticText(self, label='Length',
                             style=wx.ALIGN_LEFT)
        hdr3 = wx.StaticText(self, label='Absolute\nRoughness',
                             style=wx.ALIGN_CENTER)

        self.unt1 = wx.Choice(self, choices=chcs_1)
        self.unt1.SetSelection(0)
        self.Bind(wx.EVT_CHOICE, self.DiaUnits, self.unt1)

        self.info1 = wx.ComboCtrl(self, pos=(10, 10),
                                   size=(100, -1), style=wx.CB_READONLY)
        self.info1.SetPopupControl(
            ListCtrlComboPopup(self.tbl_data, showcol=self.unt1.GetSelection()+3))
        self.Bind(wx.EVT_COMBOBOX_CLOSEUP, self.WallThk, self.info1)

#        self.info1 = wx.TextCtrl(self, value='', style=wx.TE_RIGHT)

        self.info2 = wx.TextCtrl(self, value='', style=wx.TE_RIGHT)
        self.unt2 = wx.Choice(self, choices=chcs_2)
        self.unt2.SetSelection(1)
        self.info3 = wx.TextCtrl(self, value='', style=wx.TE_RIGHT)
        self.unt3 = wx.Choice(self, choices=chcs_1)
        self.unt3.SetSelection(0)

        grd.AddMany([(hdr1), (self.info1), (self.unt1),
                     (hdr2), (self.info2), (self.unt2),
                     (hdr3), (self.info3), (self.unt3)])

        msg1 = 'This table shows suggested design values for the Absolute\n'
        msg2 = ' or Specific roughness, for various pipe materials.\n'
        msg3 = ' These values are sited from;\n\n'
        msg4 = ' \t- The Hydraulic Institute, Engineering Data Book.\n'
        msg5 = ' \t- Various vendor data compiled by SAIC, 1998\n'
        msg6 = ' \t- F.M. White, Fluid Mechanics, 7th edition'
        msg = msg1 + msg2 + msg3 + msg4 + msg5 + msg6
        info_txt = wx.StaticText(self, label = msg,
                                 style = wx.ALIGN_LEFT)

        top2_sizer.Add(grd, 0, wx.LEFT, 20)
        top2_sizer.Add((10,50))
        top2_sizer.Add(info_txt, 0, wx.LEFT, 20)

        # build the information grid for absolute roughness
        grd1 = gridlib.Grid(self, -1)
        grd1.CreateGrid(9, 3)
        grd1.EnableEditing(False)
        grd1.SetRowLabelSize(1)

        grd1.SetColLabelValue(0, "Pipe\nMaterial")
        grd1.SetColLabelValue(1, "mm")
        grd1.SetColLabelValue(2, "inch")
        
        grd_row = 0
        for items in row_lst:
            grd1.SetRowSize(grd_row, 40)
            grd_col = 0
            for item in items:
                grd1.SetColSize(grd_col, 90)
                grd1.SetCellAlignment(grd_row, grd_col, wx.ALIGN_CENTER, wx.ALIGN_CENTER)
                grd1.SetCellValue(grd_row, grd_col, item)
                grd_col += 1
            grd_row += 1

        top1_sizer.Add(grd1, 0, wx.LEFT, 35)
        top1_sizer.Add(top2_sizer, 0, wx.LEFT, 20)

        chk_sizer = wx.BoxSizer(wx.VERTICAL)
        self.prv_chk = wx.CheckBox(self, id=1, label='Add a Pressure Relief Valve',
                                   style=wx.ALIGN_RIGHT)
        self.bpv_chk = wx.CheckBox(self, id=2, label='or Back Pressure Valve',
                                   style=wx.ALIGN_RIGHT)
        self.prv_chk.SetValue(False)
        self.bpv_chk.SetValue(False)

        self.Bind(wx.EVT_CHECKBOX, self.Onvlv)

        chk_sizer.Add(self.prv_chk, 0, wx.ALIGN_LEFT| wx.LEFT, 30)
        chk_sizer.Add((10, 5))
        chk_sizer.Add(self.bpv_chk, 0, wx.ALIGN_LEFT | wx.LEFT, 30)

        self.pnl2 = wx.Panel(self)
        pnl2_sizer = wx.BoxSizer(wx.VERTICAL)
        unt_chcs = ['psig',
                    'KPa',
                    'feet of water',
                    'meters of water']

        unt_sizer = wx.BoxSizer(wx.HORIZONTAL)
        hrz2 = wx.StaticText(self.pnl2, label = 'Valve Set Pressure')
        self.set_press = wx.TextCtrl(self.pnl2, value='')
        unt_lbl = wx.StaticText(self.pnl2, label='Units')
        self.unt_bx = wx.Choice(self.pnl2, choices=unt_chcs, size=(-1, 30))
        self.unt_bx.SetSelection(2)
        unt_sizer.Add(hrz2, 0, wx.ALIGN_CENTRE_VERTICAL | wx.LEFT, 25)
        unt_sizer.Add(self.set_press, 0, wx.LEFT, 10)
        unt_sizer.Add(unt_lbl, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 15)
        unt_sizer.Add(self.unt_bx, 0, wx.LEFT, 10)

        vlv_sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.vlv_lbl = wx.StaticText(self.pnl2, label=' ')
        self.locate = wx.TextCtrl(self.pnl2, value='')
        vlv_sizer.Add(self.vlv_lbl, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 25)
        vlv_sizer.Add(self.locate, 0, wx.LEFT, 15)

        pnl2_sizer.Add(unt_sizer, 0, wx.ALIGN_CENTRE)
        pnl2_sizer.Add((10,20))
        pnl2_sizer.Add(vlv_sizer, 0, wx.ALIGN_CENTER)
        self.pnl2.Hide()
        self.pnl2.SetSizer(pnl2_sizer)

        self.sizer.Add((5, 50))
        self.sizer.Add(top1_sizer, border=15)
        self.sizer.Add((10, 25))
        self.sizer.Add(chk_sizer)
        self.sizer.Add(self.pnl2, 0, wx.TOP, 30)

        self.SetSizer(self.sizer)