Beispiel #1
0
    def on_graphic(self, event):

        if event.GetString() != L('PARALLEL_COORDINATES') or not self.mode_run:
            self.b_highligh.Disable()
            return
        self.b_highligh.Enable()
Beispiel #2
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        self.SetBackgroundColour('#DCE5EE')

        pub().subscribe(self.update_language, T.LANGUAGE_CHANGED)

        self.control_panel = None
        self.dframes = []
        self.order_names = []
        self.key_figure = 1
        self.mode_run = False

        self.current_dataframes = None
        self.current_datacolors = None

        self.run_explorer = False

        self.figure_config_dialog_ref = None

        # ---- inicialización de figura
        self.fig = Figure()
        self.canvas = FigureCanvas(self, -1, self.fig)

        # ---- configuración de figura
        self.fig_config = FigureConfig()
        self.set_figure_config()

        # ---- configuración de axe
        self.ax_conf = AxesConfig()

        # ---- radar chard config
        self.radar_chard_con = RadarChadConfig()

        # ---- toolbar
        self.sizer_tool = wx.BoxSizer(wx.HORIZONTAL)
        _bitmap = play_fig.GetBitmap()
        self.b_play = wx.BitmapButton(self, -1, _bitmap, style=wx.NO_BORDER)
        self.sizer_tool.Add(self.b_play, flag=wx.ALIGN_CENTER_VERTICAL)
        self.b_play.Bind(wx.EVT_BUTTON, self.on_play)
        self.b_play.SetToolTipString(L('VISUALIZE_DATE_CLUSTER'))
        _bitmap = settings_fig.GetBitmap()
        self.b_setting = wx.BitmapButton(self, -1, _bitmap, style=wx.NO_BORDER)
        self.sizer_tool.Add(self.b_setting, flag=wx.ALIGN_CENTER_VERTICAL)
        self.b_setting.Bind(wx.EVT_BUTTON, self.on_config)
        self.b_setting.SetToolTipString(L('FIGURE_CONF'))

        _bitmap = sort_and_filter.GetBitmap()
        self.b_sorted = wx.BitmapButton(self, -1, _bitmap, style=wx.NO_BORDER)
        self.b_sorted.Bind(wx.EVT_BUTTON, self.on_sort_and_filter)
        self.b_sorted.SetToolTipString(L('BUTTON_ORDER_AND_FILTER'))
        self.b_sorted.Disable()
        self.sizer_tool.Add(self.b_sorted, 0, wx.ALIGN_CENTER_VERTICAL)

        _bp = line_highligh.GetBitmap()
        self.b_highligh = wx.BitmapButton(self, -1, _bp, style=wx.NO_BORDER)
        self.b_highligh.Bind(wx.EVT_BUTTON, self.on_highligh)
        self.b_highligh.SetToolTipString(L('BUTTON_HIGHLIGHT'))
        self.b_highligh.Disable()
        self.sizer_tool.Add(self.b_highligh, 0, wx.ALIGN_CENTER_VERTICAL)

        self.toolbar = Toolbar(self.canvas)
        self.toolbar.Realize()
        self.toolbar.SetBackgroundColour('#DCE5EE')

        self.sizer_tool.Add(self.toolbar, 0, wx.ALIGN_CENTER_VERTICAL)

        choice_grafic = self.get_choice_grafic()
        self.sizer_tool.Add(choice_grafic, wx.ALIGN_LEFT)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.sizer_tool, 0, wx.EXPAND)
        self.sizer.Add(self.canvas, 1, wx.EXPAND)

        self.SetSizer(self.sizer)
        self.Fit()
        self._welcome()
Beispiel #3
0
    def update_language(self, message):
        self.SetTitle(L('CLUSTER_FILTER'))
        self.ok_button.SetLabel(L('OK'))
        self.cancel_button.SetLabel(L('CANCEL'))

        self.sbox_fc.SetLabel(L('FILTER_CONFIG'))
        self.nb.SetPageText(0, L('REPRESENTATIVITY_IN_QUANTITY'))
        self.nb.SetPageText(1, L('REPRESENTATIVITY_VALUES_OBJECTIVES'))

        self.sbox_sf.SetLabel(L('MORE_REPRESENTATIVE_CLUSTER'))
        self.lbl.SetLabel(L('SET_THE_AMOUNT'))
        self.sbox_sf1.SetLabel(L('LESS_REPRESENTATIVE_CLUSTER'))

        self.lb1_label.SetLabel(L('HIGHER_VALUES'))
        self.lb2_label.SetLabel(L('SMALLER_VALUES'))
Beispiel #4
0
 def get_item_list(self):
     return [L('PARALLEL_COORDINATES'), 'Radar Chart']
Beispiel #5
0
    def __init__(self,
                 parent,
                 key_message,
                 key_ico=K_ICON_INFORMATION,
                 key_button=K_OK):

        self.parent = parent

        if key_message == KMSG_EMPTY_DATA_SELECTED:
            self.h_msg = L('H_EMPTY_DATA_SELECTED')
            self.m_msg = L('EMPTY_DATA_SELECTED')
            self.k_ico = key_ico
            self.k_but = key_button
        elif key_message == KMSG_EMPTY_CLUSTER_DATA:
            self.h_msg = L('H_EMPTY_CLUSTER_DATA')
            self.m_msg = L('EMPTY_CLUSTER_DATA')
            self.k_ico = key_ico
            self.k_but = key_button
        elif key_message == KMSG_EMPTY_CLUSTER_SELECTED:
            self.h_msg = L('H_EMPTY_CLUSTER_SELECTED')
            self.m_msg = L('EMPTY_CLUSTER_SELECTED')
            self.k_ico = key_ico
            self.k_but = key_button
        elif key_message == KMSG_EMPTY_DATA_GENERATE_CLUSTER:
            self.h_msg = L('H_EMPTY_DATA_GENERATE_CLUSTER')
            self.m_msg = L('EMPTY_EMPTY_DATA_GENERATE_CLUSTER')
            self.k_ico = key_ico
            self.k_but = key_button
        elif key_message == KMSG_GENERATE_CLUSTER:
            self.h_msg = L('H_GENERATE_CLUSTER')
            self.m_msg = L('EMPTY_GENERATE_CLUSTER')
            self.k_ico = key_ico
            self.k_but = key_button

        elif key_message == KMSG_EMPTY_NUMBER_KMEANS:
            self.h_msg = L('H_EMPTY_NUMBER_KMEANS')
            self.m_msg = L('EMPTY_NUMBER_KMEANS')
            self.k_ico = key_ico
            self.k_but = key_button

        elif key_message == KMSG_INVALID_NUM_CLUSTERS:
            self.h_msg = L('H_INVALID_NUM_CLUSTERS')
            self.m_msg = L('INVALID_NUM_CLUSTERS')
            self.k_ico = key_ico
            self.k_but = key_button

        else:
            self.h_msg = 'Defaul'
            self.m_msg = 'Defaul'
            self.k_ico = key_ico
            self.k_but = key_button
Beispiel #6
0
    def update_language(self, message):
        self.sbox_ax.SetLabel(L('DISPLAY_SELECTED'))
        self.radio1.SetLabel(L('ALL_IN_SAME_FIGURE'))
        self.radio2.SetLabel(L('ALL_IN_DIFFERENT_FIGURES'))
        self.radio3.SetLabel(L('A_FIGURE_FOR_EACH_CLUSTER_AND_SUMMARY'))
        self.r4.SetLabel(L('CLUSTERS_IN_A_FIGURE_AND_SUMMARIES_IN_ANOTHER'))

        self.sbox_lg.SetLabel(L('DISPLAY_SELECTED'))
        self.nb.SetPageText(1, L('SUMMARY'))

        self.checkbox1.SetLabel(L('SHOW_PERCENTAGE_OF_OBSERVATIONS'))
        self.checkbox2.SetLabel(L('SHOW_AMOUNT_OF_OBSERVATIONS'))
        self.checkbox3.SetLabel(L('SHOW_NAME'))
        self.checkbox4.SetLabel(L('SHOW_SHAPES'))

        self.chkbox1.SetLabel(L('SHOW_PERCENTAGE_OF_OBSERVATIONS'))
        self.chkbox2.SetLabel(L('SHOW_AMOUNT_OF_OBSERVATIONS'))
        self.chkbox3.SetLabel(L('SHOW_NAME'))
        self.chkbox4.SetLabel(L('SHOW_SHAPES'))
Beispiel #7
0
 def update_language(self, msg):
     self._checked_all.SetLabel(L('SELECT_ALL'))
     self._checked_header.SetLabel(L('CHECK_HEADER_CLUSTER'))
     self.Layout()
Beispiel #8
0
 def update_language(self, msg):
     self.sbox_rc.SetLabel(L('RC_CONF1_HEADER'))
     self.t_label.SetLabel(L('RC_CONF1_STYLE_G'))
     self.ch_type.SetToolTipString(L('RC_CONF1_STYLE_GTS'))
     self.chk_fill.SetLabel(L('RC_CONF1_FILL'))
Beispiel #9
0
    def update_language(self, msg):
        self.sbox_spf.SetLabel(L('EDGES'))
        self.top_label.SetLabel(L('TOP'))
        self.clr_top_sp.SetLabel(L('CHOOSE_A_COLOR'))
        self.clr_top_sp.Refresh()
        self.bottom_label.SetLabel(L('BOTTOM'))
        self.clr_bottom_sp.SetLabel(L('CHOOSE_A_COLOR'))
        self.clr_bottom_sp.Refresh()
        self.left_label.SetLabel(L('LEFT'))
        self.clr_left_sp.SetLabel(L('CHOOSE_A_COLOR'))
        self.clr_left_sp.Refresh()
        self.right_label.SetLabel(L('RIGHT'))
        self.clr_right_sp.SetLabel(L('CHOOSE_A_COLOR'))
        self.clr_right_sp.Refresh()

        self.sbox_lglc.SetLabel(L('LEGEND'))
        self.chk_show_lg.SetLabel(L('SHOW_LEGEND'))
        self.loc_label.SetLabel(L('LOCATION'))
        self.highlight_label.SetLabel(L('SELECT_COLOR_HIGHLIGHT'))

        self.sbox_grid.SetLabel(L('GRID'))
        self.ch.SetLabel(L('SHOW_GRID'))
        self.cho_label.SetLabel(L('TYPE'))
        self.cho.SetToolTipString(L('SELECT_TYPE_OF_GRID'))
        self.g_linewidth_label.SetLabel(L('WIDTH'))
        self.g_color_label.SetLabel(L('COLOR'))
        self.g_color_alpha_label.SetLabel(L('COLOR_ALPHA'))

        self.sbox_xy.SetLabel(L('AXES_VALUES'))
        self.x_ch.SetLabel(L('IN_X'))
        self.x_label_color.SetLabel(L('COLOR_X'))
        self.y_ch.SetLabel(L('IN_Y'))
        self.y_label_color.SetLabel(L('COLOR_Y'))
Beispiel #10
0
 def update_language(self, msg):
     self.SetTitle(L('GRAPHIC_CONFIG'))
     self.nb.SetPageText(0, L('FIGURE'))
     self.nb.SetPageText(1, L('AXES'))
     self.ok_button.SetLabel(L('OK'))
     self.cancel_button.SetLabel(L('CANCEL'))
Beispiel #11
0
    def add_res(self, project, path_files, t_format, sep, dlg=None):

        results = []
        parse_correct = []
        parse_error = []
        result_names = []

        for r in project.results:
            result_names.append(r.name)

        # ---- verificar nombres repetidos

        for _p in path_files:
            if _p[1] in result_names:
                _l = 'El proyecto ya contiene mismo nombre de archivos'
                ParserError(_p[1], _l, 0)
                path_files.remove(_p)

        if FORMAT_TAVA == t_format:

            files_von_parsed = []

            # parsear archivos
            _all = len(path_files)

            for i, p in enumerate(path_files):

                m_lit = '\t' + L('MSG_PRO_FORMATER')
                m_num = ': ' + str(i + 1) + '/' + str(_all)
                m_tit = m_lit + m_num
                keepGoing = dlg.UpdatePulse(m_tit)

                try:
                    vtot = VonToTavaParser(p[0], self.dir_parser)
                    file_parsed = vtot.make_preparsing(m_tit, dlg)
                except PreParserError as preherror:
                    parse_error.append(preherror)
                else:
                    files_von_parsed.append(file_parsed)

            # crear resultdos a partir de archivos preparseados
            for i, tava_file in enumerate(files_von_parsed):

                m_lit = '\t' + L('MSG_PRO_PARSER')
                m_num = ': ' + str(i + 1) + '/' + str(_all)
                m_tit = m_lit + m_num
                keepGoing = dlg.UpdatePulse(m_tit)

                try:
                    tfr = TavaFileToResult(tava_file)
                    tfr.make_parsing(m_tit, dlg)
                except ParserError as parseerror:
                    parse_error.append(parseerror)
                else:
                    try:
                        m_lit = '\t' + L('MSG_PRO_SAVE')
                        m_tit = m_lit + m_num
                        keepGoing = dlg.UpdatePulse(m_tit)

                        # agrega a la base de datos
                        tfr.result.project_id = project.id
                        _iterations = list(tfr.result.iterations)
                        result = tfr.result
                        result.iterations = []
                        result = ResultModel().add(result)

                        _ite_all = len(_iterations)
                        for ii, ite in enumerate(_iterations):
                            m_lit_b = '\n' + L('MSG_PRO_DATA_SAVE')
                            m_num_b = ': ' + str(ii + 1) + '/' + str(_ite_all)
                            m_tit_b = m_tit + m_lit_b + m_num_b
                            keepGoing = dlg.UpdatePulse(m_tit_b)

                            result.iterations.append(ite)
                            result = ResultModel().update_init(result)
                            if not keepGoing:
                                dlg.UpdatePulse('Aborting')
                                return results

                    except Exception as e:
                        p_e = ParserError(tava_file,
                                          "Error Exception: {0}".format(e),
                                          None)
                        parse_error.append(p_e)
                    else:
                        results.append(result)
                        parse_correct.append(object)

        elif FORMAT_OBJETIVE == t_format:
            _all = len(path_files)
            for i, p in enumerate(path_files):

                try:
                    m_lit = '\t' + L('MSG_PRO_PARSER')
                    m_num = ': ' + str(i + 1) + '/' + str(_all)
                    m_tit = m_lit + m_num
                    keepGoing = dlg.UpdatePulse(m_tit)

                    tfr = SepFileToResult(p[0])
                    tfr.make_parsing(m_tit, sep, dlg)

                except ParserError as parseerror:
                    parse_error.append(parseerror)
                else:
                    m_lit = '\t' + L('MSG_PRO_SAVE')
                    m_tit = m_lit + m_num
                    keepGoing = dlg.UpdatePulse(m_tit)

                    # agrega a la base de datos
                    tfr.result.project_id = project.id
                    _iterations = list(tfr.result.iterations)
                    result = tfr.result
                    result.iterations = []
                    result = ResultModel().add(result)

                    _ite_all = len(_iterations)
                    for ii, ite in enumerate(_iterations):
                        m_lit_b = '\n' + L('MSG_PRO_DATA_SAVE')
                        m_num_b = ': ' + str(ii + 1) + '/' + str(_ite_all)
                        m_tit_b = m_tit + m_lit_b + m_num_b
                        keepGoing = dlg.UpdatePulse(m_tit_b)

                        result.iterations.append(ite)
                        result = ResultModel().update_init(result)
                        if not keepGoing:
                            dlg.UpdatePulse('Aborting')
                            return results

                    results.append(result)
                    parse_correct.append(object)

        elif 10 == t_format:

            # crear resultdos a partir de archivos preparseados
            for tava_file in path_files:
                try:
                    tfr = TavaFileToResult(tava_file)
                    tfr.make_parsing()
                except ParserError as parseerror:
                    parse_error.append(parseerror)
                else:
                    try:
                        # agrega a la base de datos
                        tfr.result.project_id = project.id
                        result = ResultModel().add(tfr.result)
                    except Exception as e:
                        p_e = ParserError(tava_file,
                                          "Error Exception: {0}".format(e),
                                          None)
                        parse_error.append(p_e)
                    else:
                        results.append(result)
                        parse_correct.append(object)

        return results, parse_error