예제 #1
0
    def Remplissage(self):
        # --------------------------- COULEURS DE FOND ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Couleurs de fond")) )

        # Couleur 3
        propriete = wxpg.ColourProperty(label=_(u"Fond ligne entêtes"), name="couleur_fond_entetes", value=wx.Colour(204, 204, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 1
        propriete = wxpg.ColourProperty(label=_(u"Fond ligne dépôt"), name="couleur_fond_depot", value=wx.Colour(230, 230, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 2
        propriete = wxpg.ColourProperty(label=_(u"Fond ligne total"), name="couleur_fond_total", value=wx.Colour(204, 204, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- TEXTE ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Texte")) )

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="taille_texte", value=7)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte", "SpinCtrl")

        # --------------------------- COLONNES ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Colonnes")) )

        # Largeur colonne labels
        propriete = wxpg.IntProperty(label=_(u"Largeur colonne label"), name="largeur_colonne_labels", value=170)
        propriete.SetHelpString(_(u"Saisissez la largeur pour la colonne label (170 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_labels", "SpinCtrl")

        # Largeur colonne valeurs
        propriete = wxpg.IntProperty(label=_(u"Largeur colonne valeur"), name="largeur_colonne_valeurs", value=45)
        propriete.SetHelpString(_(u"Saisissez la largeur pour la colonne valeur (45 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_valeurs", "SpinCtrl")
예제 #2
0
    def AddProperty(self, property, parent_property=None):
        self.inAddProperty += 1

        # add a cad.property, optionally to an existing wx.PGProperty
        if property.GetType() == cad.PROPERTY_TYPE_STRING:
            new_prop = wxpg.StringProperty(property.GetTitle(),
                                           value=property.GetString())
        elif property.GetType() == cad.PROPERTY_TYPE_LONG_STRING:
            #new_prop = wxpg.LongStringProperty("MultipleButtons", wxpg.PG_LABEL)
            new_prop = wxpg.StringProperty(property.GetTitle(),
                                           value=property.GetString())
        elif property.GetType() == cad.PROPERTY_TYPE_DOUBLE:
            new_prop = wxpg.FloatProperty(property.GetTitle(),
                                          value=property.GetDouble())
        elif property.GetType() == cad.PROPERTY_TYPE_LENGTH:
            new_prop = wxpg.FloatProperty(property.GetTitle(),
                                          value=property.GetDouble() /
                                          cad.GetUnits())
        elif property.GetType() == cad.PROPERTY_TYPE_INT:
            new_prop = wxpg.IntProperty(property.GetTitle(),
                                        value=property.GetInt())
        elif property.GetType() == cad.PROPERTY_TYPE_COLOR:
            col = property.GetColor()
            wcol = wx.Colour(col.red, col.green, col.blue)
            new_prop = wxpg.ColourProperty(property.GetTitle(), value=wcol)
        elif property.GetType() == cad.PROPERTY_TYPE_CHOICE:
            new_prop = wxpg.EnumProperty(property.GetTitle(),
                                         labels=property.GetChoices(),
                                         value=property.GetInt())
        elif property.GetType() == cad.PROPERTY_TYPE_CHECK:
            new_prop = wxpg.BoolProperty(property.GetTitle(),
                                         value=property.GetBool())
            new_prop.SetAttribute(wxpg.PG_BOOL_USE_CHECKBOX, True)
        elif property.GetType() == cad.PROPERTY_TYPE_LIST:
            new_prop = wxpg.StringProperty(property.GetTitle(),
                                           value='<composed>')
        elif property.GetType() == cad.PROPERTY_TYPE_FILE:
            new_prop = wxpg.FileProperty(property.GetTitle(),
                                         value=property.GetString())
        else:
            wx.MessageBox('invalid property type: ' + str(property.GetType()))
            return

        if not property.editable:
            new_prop.ChangeFlag(wxpg.PG_PROP_READONLY, True)
        self.Append(parent_property, new_prop, property)

        if property.GetType() == cad.PROPERTY_TYPE_LIST:
            plist = property.GetProperties()
            for p in plist:
                self.AddProperty(p, new_prop)
            new_prop.ChangeFlag(wxpg.PG_PROP_COLLAPSED, True)
        elif property.GetType() == cad.PROPERTY_TYPE_LONG_STRING:
            # Change property to use editor created in the previous code segment
            #self.pg.SetPropertyEditor("MultipleButtons", self.multiButtonEditor)
            self.pg.SetPropertyEditor(new_prop, "TrivialPropertyEditor")

        self.inAddProperty -= 1
예제 #3
0
    def __init__(self, label, name=wxpg.LABEL_AS_NAME, value=0):
        wxpg.PyProperty.__init__(self, label, name)

        a, r, g, b = value >> 24, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF
        self.AddPrivateChild(
            wxpg.ColourProperty("RGB", value=wx.Colour(r, g, b)))
        self.AddPrivateChild(wxpg.IntProperty("Alpha", value=a))

        self.m_value = value
예제 #4
0
    def initialize_fixed_properties(self, pg):
        pg.Append(wxpg.StringProperty(self.SLIDE_RANGE))
        pg.Append(
            wxpg.EnumProperty(self.IMAGE_TYPE,
                              labels=["GIF", "JPEG", "PNG", "TIF"],
                              value=1))
        pg.Append(wxpg.DirProperty(self.OUTPUT_DIR))

        pg.Append(wxpg.BoolProperty(self.CLEANUP_OUTPUT_DIR))
        pg.Append(wxpg.BoolProperty(self.TRANSPARENT_IMAGE))
        pg.Append(wxpg.ColourProperty(self.TRANSPARENT_COLOR))
예제 #5
0
    def _create_dummy_content(self):
        # some dummy content from the wxPython demo
        import wx.propgrid as wxpg
        pg = self.widget
        pg.AddPage( "Page 1 - Dummy" )

        pg.Append( wxpg.PropertyCategory("1 - Basic Properties") )
        pg.Append( wxpg.StringProperty("String",value="Some Text") )

        sp = pg.Append( wxpg.StringProperty('StringProperty w/ Password flag', value='ABadPassword') )
        sp.SetAttribute('Hint', 'This is a hint')
        sp.SetAttribute('Password', True)

        pg.Append( wxpg.IntProperty("Int",value=123) )
        pg.Append( wxpg.FloatProperty("Float",value=123.4) )
        pg.Append( wxpg.BoolProperty("Bool",value=True) )
        pg.Append( wxpg.BoolProperty("Bool_with_Checkbox",value=True) )
        pg.SetPropertyAttribute( "Bool_with_Checkbox", "UseCheckbox", True)
        pg.Append( wxpg.PropertyCategory("2 - More Properties") )
        pg.Append( wxpg.LongStringProperty("LongString", value="This is a\nmulti-line string\nwith\ttabs\nmixed\tin."))
        pg.Append( wxpg.DirProperty("Dir",value=r"C:\Windows") )
        pg.Append( wxpg.FileProperty("File",value=r"C:\Windows\system.ini") )
        pg.Append( wxpg.ArrayStringProperty("ArrayString",value=['A','B','C']) )

        pg.Append( wxpg.EnumProperty("Enum","Enum", ['wxPython Rules', 'wxPython Rocks', 'wxPython Is The Best'],
                                                    [10,11,12], 0) )
        pg.Append( wxpg.EditEnumProperty("EditEnum","EditEnumProperty", ['A','B','C'], [0,1,2], "Text Not in List") )

        pg.Append( wxpg.PropertyCategory("3 - Advanced Properties") )
        pg.Append( wxpg.DateProperty("Date",value=wx.DateTime.Now()) )
        pg.Append( wxpg.FontProperty("Font",value=self.widget.GetFont()) )
        pg.Append( wxpg.ColourProperty("Colour", value=self.widget.GetBackgroundColour()) )
        pg.Append( wxpg.SystemColourProperty("SystemColour") )
        pg.Append( wxpg.ImageFileProperty("ImageFile") )
        pg.Append( wxpg.MultiChoiceProperty("MultiChoice", choices=['wxWidgets','QT','GTK+']) )

        pg.Append( wxpg.PropertyCategory("4 - Additional Properties") )
        pg.Append( wxpg.IntProperty("IntWithSpin",value=256) )
        pg.SetPropertyEditor("IntWithSpin","SpinCtrl")

        pg.SetPropertyAttribute( "File", wxpg.PG_FILE_SHOW_FULL_PATH, 0 )
        pg.SetPropertyAttribute( "File", wxpg.PG_FILE_INITIAL_PATH, r"C:\Program Files\Internet Explorer" )
        if compat.IS_PHOENIX:
            pg.SetPropertyAttribute( "Date", wxpg.PG_DATE_PICKER_STYLE, wx.adv.DP_DROPDOWN|wx.adv.DP_SHOWCENTURY )

        pg.AddPage( "Page 2 - Almost Empty" )
        pg.Append( wxpg.PropertyCategory("1 - Basic Properties") )
        pg.Append( wxpg.StringProperty("String 2",value="Some Text") )
예제 #6
0
    def _create_plot_properties(self):
        pg = self.property_grid_1
        # pg.AddPage("Page 1 - Plot Settings")  # if pages are needed, use PropertyGridManger instead
        dir_path = os.path.dirname(os.path.realpath(__file__))
        pg.Append(wxpg.PropertyCategory("1 - Basic Properties"))
        pg.Append(wxpg.StringProperty(label="Title", value="Title"))
        pg.Append(wxpg.StringProperty(label="X Label", value="X Label"))
        pg.Append(wxpg.StringProperty(label="Y Label", value="Y Label"))
        pg.Append(wxpg.BoolProperty(label="Grid", value=True))
        pg.SetPropertyAttribute(id="Grid", attrName="UseCheckbox", value=True)

        pg.Append(wxpg.PropertyCategory("2 - Data"))
        # https://discuss.wxpython.org/t/wxpython-pheonix-4-0-2-question-regarding-multichoiceproperty-and-setting-the-selection-of-the-choices/30044
        # https://discuss.wxpython.org/t/how-to-set-propertygrid-values/30152/4
        pg.Append(
            wxpg.EnumProperty(
                label="Scale",
                labels=['Linear', 'SemilogX', 'SemilogY', 'LogLog']))
        pg.Append(
            wxpg.EnumProperty(label="X Data",
                              name="X Data",
                              labels=['NaN'],
                              values=[0]))
        pg.Append(
            wxpg.MultiChoiceProperty(label="Y Data",
                                     name='Y Data',
                                     choices=['NaN'],
                                     value=['NaN']))
        pg.Append(
            wxpg.EnumProperty(label="Data Labels",
                              name="Data Labels",
                              labels=['NaN'],
                              values=[0]))

        pg.Append(wxpg.PropertyCategory("3 - Optional Static Plot Overlay"))
        pg.Append(wxpg.FileProperty(label="Overlay Plot",
                                    value=rf"{dir_path}"))
        pg.Append(wxpg.EnumProperty(label="X Axis Variable", labels=['']))
        pg.Append(wxpg.EnumProperty(label="Y Axis Variable", labels=['']))

        pg.Append(wxpg.PropertyCategory("4 - Advanced Properties"))
        pg.Append(wxpg.ArrayStringProperty(label="xLim", value=['0', '100']))
        pg.Append(wxpg.ArrayStringProperty(label="yLim", value=['0', '100']))
        pg.Append(wxpg.DateProperty(label="Date", value=wx.DateTime.Now()))
        pg.Append(wxpg.ColourProperty(label="Line Colour", value='#1f77b4'))
        pg.Append(wxpg.FontProperty(label="Font", value=self.GetFont()))
        pg.Grid.FitColumns()
예제 #7
0
    def palette_updater(self, select):
        self.palette_grid.Clear()

        self.palette_grid.Append(pg.PropertyCategory('amount | color', 'cat'))

        try:
            palette = self.files_list[self.note.GetPageText(select)]['palette']
        except KeyError:
            return
        if palette is None:
            return
        k = 0
        for amount, colour in sorted(palette,
                                     key=lambda x: rgb_to_hsv(*x[1][:3]),
                                     reverse=False):
            if colour[3] > 0:
                self.palette_grid.Append(
                    pg.ColourProperty(label=str(amount),
                                      name=str(k),
                                      value=wx.Colour(colour)))
                k += 1

        self.palette_grid.SetSplitterPosition(70)
예제 #8
0
    def Remplissage(self):
        listeChampsPiedsPages = ["{DATE_JOUR}", "{TITRE_DOCUMENT}", "{NUM_PAGE}", "{NBRE_PAGES}"]

        # --------------------------- Divers ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Divers")) )

        # Inclure les images
        propriete = wxpg.BoolProperty(label=_(u"Inclure les images"), name="inclure_images", value=True)
        propriete.SetHelpString(_(u"Cochez cette case pour inclure les images")) 
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Entete de colonne sur chaque page
        propriete = wxpg.BoolProperty(label=_(u"Afficher les entêtes sur chaque page"), name="entetes_toutes_pages", value=True)
        propriete.SetHelpString(_(u"Cochez cette case pour afficher les entêtes de colonne sur chaque page")) 
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Qualité de l'impression
        labels = [_(u"Brouillon"), _(u"Basse"), _(u"Moyenne"), _(u"Haute")]
        propriete = wxpg.EnumProperty(label=_(u"Qualité d'impression"), name="qualite_impression", labels=labels, values=[wx.PRINT_QUALITY_DRAFT, wx.PRINT_QUALITY_LOW, wx.PRINT_QUALITY_MEDIUM, wx.PRINT_QUALITY_HIGH] , value=wx.PRINT_QUALITY_MEDIUM)
        propriete.SetHelpString(_(u"Sélectionnez la qualité d'impression (Moyenne par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)


        # --------------------------- Marges ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Marges")) )

        # Gauche
        propriete = wxpg.IntProperty(label=_(u"Gauche"), name="marge_gauche", value=5)
        propriete.SetHelpString(_(u"Saisissez une taille de marge")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_gauche", "SpinCtrl")

        # Droite
        propriete = wxpg.IntProperty(label=_(u"Droite"), name="marge_droite", value=5)
        propriete.SetHelpString(_(u"Saisissez une taille de marge")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_droite", "SpinCtrl")

        # Haut
        propriete = wxpg.IntProperty(label=_(u"Haut"), name="marge_haut", value=5)
        propriete.SetHelpString(_(u"Saisissez une taille de marge")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_haut", "SpinCtrl")

        # Bas
        propriete = wxpg.IntProperty(label=_(u"Bas"), name="marge_bas", value=5)
        propriete.SetHelpString(_(u"Saisissez une taille de marge")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_bas", "SpinCtrl")

        # --------------------------- Quadrillage ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Quadrillage")) )

        # Epaisseur de trait
        propriete = wxpg.FloatProperty(label=_(u"Epaisseur de trait"), name="grille_trait_epaisseur", value=0.25)
        propriete.SetHelpString(_(u"Saisissez une épaisseur de trait (Par défaut '0.25')")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur de trait
        propriete = wxpg.ColourProperty(label=_(u"Couleur de trait"), name="grille_trait_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur de trait")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Titre de liste ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Titre")) )

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="titre_taille_texte", value=16)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (16 par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("titre_taille_texte", "SpinCtrl")

        # Style
        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="titre_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_BOLD)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        
        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="titre_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="titre_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)


        # --------------------------- Intro ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Introduction")) )

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="intro_taille_texte", value=7)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (7 par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("intro_taille_texte", "SpinCtrl")

        # Style
        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="intro_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        
        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="intro_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="intro_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Titre de colonne  ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Entête de colonne")) )

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="titre_colonne_taille_texte", value=8)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("titre_colonne_taille_texte", "SpinCtrl")

        #  Style
        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="titre_colonne_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        
        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="titre_colonne_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="titre_colonne_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_CENTER)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur de fond
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond"), name="titre_colonne_couleur_fond", value=wx.Colour(240, 240, 240))
        propriete.SetHelpString(_(u"Sélectionnez une couleur de fond")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Ligne  ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Ligne")) )

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="ligne_taille_texte", value=8)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("ligne_taille_texte", "SpinCtrl")

        #  Style
        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="ligne_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        
        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="ligne_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Multilignes autorisé
        propriete = wxpg.BoolProperty(label=_(u"Autoriser saut à la ligne"), name="ligne_multilignes", value=True)
        propriete.SetHelpString(_(u"Cochez cette case pour autoriser le saut à la ligne en cas de colonne trop étroite")) 
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)


        # --------------------------- Pied de page  ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Pied de page")) )
        
        # Texte de gauche
        valeur = "{DATE_JOUR}"
        propriete = wxpg.StringProperty(label=_(u"Texte de gauche"), name="pied_page_texte_gauche", value=valeur)
        propriete.SetHelpString(_(u"Saisissez le texte de gauche du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s") % (valeur, ", ".join(listeChampsPiedsPages)))
        self.Append(propriete)

        # Texte du milieu
        valeur = "{TITRE_DOCUMENT}"
        propriete = wxpg.StringProperty(label=_(u"Texte du milieu"), name="pied_page_texte_milieu", value=valeur)
        propriete.SetHelpString(_(u"Saisissez le texte du milieu du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s") % (valeur, ", ".join(listeChampsPiedsPages)))
        self.Append(propriete)

        # Texte de droite
        valeur = "{NUM_PAGE} / {NBRE_PAGES}"
        propriete = wxpg.StringProperty(label=_(u"Texte de droite"), name="pied_page_texte_droite", value=valeur)
        propriete.SetHelpString(_(u"Saisissez le texte de droite du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s") % (valeur, ", ".join(listeChampsPiedsPages)))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="pied_page_taille_texte", value=8)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("pied_page_taille_texte", "SpinCtrl")

        #  Style
        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="pied_page_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        
        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="pied_page_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)


        # --------------------------- Pied de colonne  ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Pied de colonne")) )

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="pied_colonne_taille_texte", value=8)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (8 par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("pied_colonne_taille_texte", "SpinCtrl")

        #  Style
        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="pied_colonne_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        
        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="pied_colonne_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="pied_colonne_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_CENTER)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur de fond
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond"), name="pied_colonne_couleur_fond", value=wx.Colour(240, 240, 240))
        propriete.SetHelpString(_(u"Sélectionnez une couleur de fond")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)


        # --------------------------- Pied de liste ------------------------------------------
        self.Append( wxpg.PropertyCategory(_(u"Conclusion")) )

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"), name="conclusion_taille_texte", value=7)
        propriete.SetHelpString(_(u"Saisissez une taille de texte (7 par défaut)")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("conclusion_taille_texte", "SpinCtrl")

        # Style
        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="conclusion_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_BOLD)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        
        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="conclusion_couleur", value=wx.BLACK)
        propriete.SetHelpString(_(u"Sélectionnez une couleur")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(label=_(u"Alignement du texte"), name="conclusion_alignement", labels=labels, values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT] , value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement")) 
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
예제 #9
0
    def Remplissage(self):
        # Regroupement
        self.Append(wxpg.PropertyCategory(_(u"Regroupement")))

        # Regroupement principal
        liste_regroupements = [
            ("aucun", _(u"Aucun")),
            ("jour", _(u"Jour")),
            ("mois", _(u"Mois")),
            ("annee", _(u"Année")),
            ("activite", _(u"Activité")),
            ("groupe", _(u"Groupe")),
            ("evenement", _(u"Evènement")),
            ("evenement_date", _(u"Evènement (avec date)")),
            ("etiquette", _(u"Etiquette")),
            ("unite_conso", _(u"Unité de consommation")),
            ("categorie_tarif", _(u"Catégorie de tarif")),
            ("ville_residence", _(u"Ville de résidence")),
            ("secteur", _(u"Secteur géographique")),
            ("genre", _(u"Genre (M/F)")),
            ("age", _(u"Age")),
            ("ville_naissance", _(u"Ville de naissance")),
            ("nom_ecole", _(u"Ecole")),
            ("nom_classe", _(u"Classe")),
            ("nom_niveau_scolaire", _(u"Niveau scolaire")),
            ("individu", _(u"Individu")),
            ("famille", _(u"Famille")),
            ("regime", _(u"Régime social")),
            ("caisse", _(u"Caisse d'allocations")),
            ("qf_perso", _(u"Quotient familial (tranches personnalisées)")),
            ("qf_tarifs", _(u"Quotient familial (tranches paramétrées)")),
            ("qf_100", _(u"Quotient familial (tranches de 100)")),
            ("categorie_travail", _(u"Catégorie de travail")),
            ("categorie_travail_pere", _(u"Catégorie de travail du père")),
            ("categorie_travail_mere",
             _(u"Catégorie de travail de la mère")),
        ]

        # Intégration des questionnaires
        q = UTILS_Questionnaires.Questionnaires()
        for public in ("famille", "individu"):
            for dictTemp in q.GetQuestions(public):
                label = _(u"Question %s. : %s") % (public[:3],
                                                   dictTemp["label"])
                code = "question_%s_%d" % (public, dictTemp["IDquestion"])
                liste_regroupements.append((code, label))

        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Regroupement principal"),
            name="regroupement_principal",
            liste_choix=liste_regroupements,
            valeur="aucun")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez un niveau de regroupement principal"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Tranches d'âge
        propriete = CTRL_Propertygrid.Propriete_liste(
            label=_(u"Regroupement par tranches d'âge"),
            name="regroupement_age",
            liste_selections=[])
        propriete.SetHelpString(
            _(u"Saisissez les tranches d'âge souhaitées séparées par des virgules. Exemple : '3, 6, 12'"
              ))
        propriete.SetAttribute("obligatoire", False)
        self.Append(propriete)

        # Tranches de QF perso
        propriete = CTRL_Propertygrid.Propriete_liste(
            label=_(u"Regroupement par tranches de QF"),
            name="tranches_qf_perso",
            liste_selections=[])
        propriete.SetHelpString(
            _(u"Attention, à utiliser avec le regroupement principal 'Quotient familial (tranches personnalisées)'. Saisissez les tranches de QF souhaitées séparées par des virgules. Exemple : '650, 800, 1200'"
              ))
        propriete.SetAttribute("obligatoire", False)
        self.Append(propriete)

        # Afficher les périodes détaillées
        propriete = wxpg.BoolProperty(
            label=_(u"Regroupement par périodes détaillées"),
            name="periodes_detaillees",
            value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher les périodes détaillées"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Données
        self.Append(wxpg.PropertyCategory(_(u"Données")))

        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Format des données"),
            name="format_donnees",
            liste_choix=[("horaire", _(u"Horaire")),
                         ("decimal", _(u"Décimal"))],
            valeur="horaire")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez le format d'affichage des données"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Afficher l'avertissement 'familles sans régime'
        propriete = wxpg.BoolProperty(
            label=_(u"Avertissement si régime famille inconnu"),
            name="afficher_regime_inconnu",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher un avertissement si le régime d'une ou plusieurs familles est inconnu"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Associer régime inconnu
        DB = GestionDB.DB()
        req = """SELECT IDregime, nom FROM regimes ORDER BY nom;"""
        DB.ExecuterReq(req)
        liste_regimes = DB.ResultatReq()
        DB.Close()
        liste_regimes.insert(0, ("non", _(u"Non")))
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Associer régime inconnu à un régime"),
            name="associer_regime_inconnu",
            liste_choix=liste_regimes,
            valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez le régime dans lequel vous souhaitez inclure les familles au régime inconnu"
              ))
        propriete.SetAttribute("obligatoire", False)
        self.Append(propriete)

        # Plafond journalier par individu
        propriete = wxpg.IntProperty(
            label=_(u"Plafond journalier par individu (en minutes)"),
            name="plafond_journalier_individu",
            value=0)
        propriete.SetHelpString(
            _(u"Saisissez un plafond journalier (en minutes) par individu, toutes activités confondues (0 = désactivé). Exemple : une valeur de 120 (minutes) plafonnera le temps retenu pour chaque individu à hauteur de 2 heures."
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Filtres
        self.Append(wxpg.PropertyCategory(_(u"Filtres")))

        # Jours hors vacances
        liste_jours = [(0, _(u"Lundi")), (1, _(u"Mardi")), (2, _(u"Mercredi")),
                       (3, _(u"Jeudi")), (4, _(u"Vendredi")),
                       (5, _(u"Samedi")), (6, _(u"Dimanche"))]
        propriete = CTRL_Propertygrid.Propriete_multichoix(
            label=_(u"Jours hors vacances"),
            name="jours_hors_vacances",
            liste_choix=liste_jours,
            liste_selections=[0, 1, 2, 3, 4, 5, 6])
        propriete.SetHelpString(
            _(u"Sélectionnez les jours hors vacances à inclure dans les calculs. Cliquez sur le bouton à droite du champ de saisie pour accéder à la fenêtre de sélection."
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Jours de vacances
        propriete = CTRL_Propertygrid.Propriete_multichoix(
            label=_(u"Jours de vacances"),
            name="jours_vacances",
            liste_choix=liste_jours,
            liste_selections=[0, 1, 2, 3, 4, 5, 6])
        propriete.SetHelpString(
            _(u"Sélectionnez les jours de vacances à inclure dans les calculs. Cliquez sur le bouton à droite du champ de saisie pour accéder à la fenêtre de sélection."
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Etat des consommations
        self.liste_codes_etats = [
            "reservation", "present", "absentj", "absenti"
        ]
        liste_etats = [(0, _(u"Pointage en attente")), (1, _(u"Présent")),
                       (2, _(u"Absence justifiée")),
                       (3, _(u"Absence injustifiée"))]
        propriete = CTRL_Propertygrid.Propriete_multichoix(
            label=_(u"Etat des consommations"),
            name="etat_consommations",
            liste_choix=liste_etats,
            liste_selections=[0, 1, 2, 3])
        propriete.SetHelpString(
            _(u"Sélectionnez les états de consommations à inclure dans les calculs. Cliquez sur le bouton à droite du champ de saisie pour accéder à la fenêtre de sélection."
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Affichage
        self.Append(wxpg.PropertyCategory(_(u"Affichage")))

        # Orientation page
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Orientation de la page"),
            name="orientation",
            liste_choix=[("portrait", _(u"Portrait")),
                         ("paysage", _(u"Paysage"))],
            valeur="portrait")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez l'orientation de la page"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur Ligne tranche d'âge
        propriete = wxpg.ColourProperty(
            label=_(u"Couleur de la ligne tranche d'âge"),
            name="couleur_ligne_age",
            value=wx.Colour(192, 192, 192))
        propriete.SetHelpString(
            _(u"Sélectionnez la couleur de la ligne tranche d'âge"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur Ligne total
        propriete = wxpg.ColourProperty(label=_(u"Couleur de la ligne total"),
                                        name="couleur_ligne_total",
                                        value=wx.Colour(234, 234, 234))
        propriete.SetHelpString(
            _(u"Sélectionnez la couleur de la ligne total"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur case regroupement principal
        propriete = wxpg.ColourProperty(
            label=_(u"Couleur de la case regroupement principal"),
            name="couleur_case_regroupement",
            value=wx.Colour(0, 0, 0))
        propriete.SetHelpString(
            _(u"Sélectionnez la couleur de la case regroupement principal"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur texte regroupement principal
        propriete = wxpg.ColourProperty(
            label=_(u"Couleur du texte regroupement principal"),
            name="couleur_texte_regroupement",
            value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez la couleur du texte regroupement principal"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
예제 #10
0
    def Remplissage(self):
        # --------------------------- TYPE DE DOCUMENT------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Type de document")))

        # Type
        propriete = wxpg.EnumProperty(
            label=_(u"Type"),
            name="type_document",
            labels=[_(u"Détaillé"),
                    _(u"Simplifié"),
                    _(u"Totaux")],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(_(u"Sélectionnez un type de document"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- COULEURS DE FOND ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Couleurs de fond")))

        # Couleur 3
        propriete = wxpg.ColourProperty(label=_(u"Fond ligne entêtes"),
                                        name="couleur_fond_3",
                                        value=wx.Colour(230, 230, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 1
        propriete = wxpg.ColourProperty(label=_(u"Fond ligne dépôt"),
                                        name="couleur_fond_1",
                                        value=wx.Colour(204, 204, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 2
        propriete = wxpg.ColourProperty(label=_(u"Fond ligne total"),
                                        name="couleur_fond_2",
                                        value=wx.Colour(230, 230, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- TITRE ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Titre")))

        # Texte
        propriete = wxpg.StringProperty(
            label=_(u"Texte"),
            name="titre_texte",
            value=_(u"Récapitulatif des factures"))
        propriete.SetHelpString(_(u"Saisissez un texte"))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="titre_taille_texte",
                                     value=16)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (16 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("titre_taille_texte", "SpinCtrl")

        # Couleur
        ##        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="titre_couleur", value=wx.BLACK)
        ##        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte"),
            name="titre_alignement",
            labels=labels,
            values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT],
            value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- INTRODUCTION ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Introduction")))

        # Texte
        propriete = wxpg.StringProperty(label=_(u"Texte"),
                                        name="intro_texte",
                                        value=u"")
        propriete.SetHelpString(_(u"Saisissez un texte"))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="intro_taille_texte",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("intro_taille_texte", "SpinCtrl")

        # Style
        ##        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        ##        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        ##        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="intro_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL)
        ##        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Couleur
        ##        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="intro_couleur", value=wx.BLACK)
        ##        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte"),
            name="intro_alignement",
            labels=labels,
            values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT],
            value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- CONCLUSION ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Conclusion")))

        # Texte
        propriete = wxpg.StringProperty(
            label=_(u"Texte"),
            name="conclusion_texte",
            value=_(
                u"{NBRE_FACTURES} factures | Montant total : {TOTAL_FACTURES}")
        )
        propriete.SetHelpString(
            _(u"Saisissez un texte. Vous pouvez utiliser les mots-clés suivants : {NBRE_FACTURES}, {TOTAL_FACTURES}, {NBRE_FACT_PRELEV}, {TOTAL_FACT_PRELEV}"
              ))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="conclusion_taille_texte",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("conclusion_taille_texte", "SpinCtrl")

        # Style
        ##        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        ##        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        ##        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="conclusion_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_BOLD)
        ##        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Couleur
        ##        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="conclusion_couleur", value=wx.BLACK)
        ##        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte"),
            name="conclusion_alignement",
            labels=labels,
            values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT],
            value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
예제 #11
0
    def __init__(self, parent, log):
        wx.Panel.__init__(self, parent, wx.ID_ANY)
        self.log = log

        self.panel = panel = wx.Panel(self, wx.ID_ANY)
        topsizer = wx.BoxSizer(wx.VERTICAL)

        # Difference between using PropertyGridManager vs PropertyGrid is that
        # the manager supports multiple pages and a description box.
        self.pg = pg = wxpg.PropertyGridManager(
            panel,
            style=wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_AUTO_SORT
            | wxpg.PG_TOOLBAR)

        # Show help as tooltips
        pg.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS)

        pg.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange)
        pg.Bind(wxpg.EVT_PG_PAGE_CHANGED, self.OnPropGridPageChange)
        pg.Bind(wxpg.EVT_PG_SELECTED, self.OnPropGridSelect)
        pg.Bind(wxpg.EVT_PG_RIGHT_CLICK, self.OnPropGridRightClick)

        #
        # Let's use some simple custom editor
        #
        # NOTE: Editor must be registered *before* adding a property that
        # uses it.
        if not getattr(sys, '_PropGridEditorsRegistered', False):
            pg.RegisterEditor(TrivialPropertyEditor)
            pg.RegisterEditor(SampleMultiButtonEditor)
            pg.RegisterEditor(LargeImageEditor)
            # ensure we only do it once
            sys._PropGridEditorsRegistered = True

        #
        # Add properties
        #

        pg.AddPage("Page 1 - Testing All")

        pg.Append(wxpg.PropertyCategory("1 - Basic Properties"))
        pg.Append(wxpg.StringProperty("String", value="Some Text"))

        sp = pg.Append(
            wxpg.StringProperty('StringProperty w/ Password flag',
                                value='ABadPassword'))
        sp.SetAttribute('Hint', 'This is a hint')
        sp.SetAttribute('Password', True)

        pg.Append(wxpg.IntProperty("Int", value=100))
        pg.Append(wxpg.FloatProperty("Float", value=100.0))
        pg.Append(wxpg.BoolProperty("Bool", value=True))
        boolprop = pg.Append(
            wxpg.BoolProperty("Bool_with_Checkbox", value=True))
        pg.SetPropertyAttribute(
            "Bool_with_Checkbox",  # You can find the property by name,
            #boolprop,               # or give the property object itself.
            "UseCheckbox",
            True)  # The attribute name and value

        pg.Append(wxpg.PropertyCategory("2 - More Properties"))
        pg.Append(
            wxpg.LongStringProperty(
                "LongString",
                value="This is a\nmulti-line string\nwith\ttabs\nmixed\tin."))
        pg.Append(wxpg.DirProperty("Dir", value=r"C:\Windows"))
        pg.Append(wxpg.FileProperty("File", value=r"C:\Windows\system.ini"))
        pg.Append(
            wxpg.ArrayStringProperty("ArrayString", value=['A', 'B', 'C']))

        pg.Append(
            wxpg.EnumProperty(
                "Enum", "Enum",
                ['wxPython Rules', 'wxPython Rocks', 'wxPython Is The Best'],
                [10, 11, 12], 0))
        pg.Append(
            wxpg.EditEnumProperty("EditEnum", "EditEnumProperty",
                                  ['A', 'B', 'C'], [0, 1, 2],
                                  "Text Not in List"))

        pg.Append(wxpg.PropertyCategory("3 - Advanced Properties"))
        pg.Append(wxpg.DateProperty("Date", value=wx.DateTime.Now()))
        pg.Append(wxpg.FontProperty("Font", value=panel.GetFont()))
        pg.Append(
            wxpg.ColourProperty("Colour", value=panel.GetBackgroundColour()))
        pg.Append(wxpg.SystemColourProperty("SystemColour"))
        pg.Append(wxpg.ImageFileProperty("ImageFile"))
        pg.Append(
            wxpg.MultiChoiceProperty("MultiChoice",
                                     choices=['wxWidgets', 'QT', 'GTK+']))

        pg.Append(wxpg.PropertyCategory("4 - Additional Properties"))
        #pg.Append( wxpg.PointProperty("Point",value=panel.GetPosition()) )
        pg.Append(SizeProperty("Size", value=panel.GetSize()))
        #pg.Append( wxpg.FontDataProperty("FontData") )
        pg.Append(wxpg.IntProperty("IntWithSpin", value=256))
        pg.SetPropertyEditor("IntWithSpin", "SpinCtrl")

        pg.SetPropertyAttribute("File", wxpg.PG_FILE_SHOW_FULL_PATH, 0)
        pg.SetPropertyAttribute("File", wxpg.PG_FILE_INITIAL_PATH,
                                r"C:\Program Files\Internet Explorer")
        pg.SetPropertyAttribute("Date", wxpg.PG_DATE_PICKER_STYLE,
                                wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY)

        pg.Append(wxpg.PropertyCategory("5 - Custom Properties and Editors"))
        pg.Append(IntProperty2("IntProperty2", value=1024))

        pg.Append(PyObjectProperty("PyObjectProperty"))

        pg.Append(DirsProperty("Dirs1", value=['C:/Lib', 'C:/Bin']))
        pg.Append(DirsProperty("Dirs2", value=['/lib', '/bin']))

        # Test another type of delimiter
        pg.SetPropertyAttribute("Dirs2", "Delimiter", '"')

        # SampleMultiButtonEditor
        pg.Append(wxpg.LongStringProperty("MultipleButtons"))
        pg.SetPropertyEditor("MultipleButtons", "SampleMultiButtonEditor")
        pg.Append(SingleChoiceProperty("SingleChoiceProperty"))

        # Custom editor samples
        prop = pg.Append(
            wxpg.StringProperty("StringWithCustomEditor", value="test value"))
        pg.SetPropertyEditor(prop, "TrivialPropertyEditor")

        pg.Append(wxpg.ImageFileProperty("ImageFileWithLargeEditor"))
        pg.SetPropertyEditor("ImageFileWithLargeEditor", "LargeImageEditor")

        # When page is added, it will become the target page for AutoFill
        # calls (and for other property insertion methods as well)
        pg.AddPage("Page 2 - Results of AutoFill will appear here")

        topsizer.Add(pg, 1, wx.EXPAND)

        rowsizer = wx.BoxSizer(wx.HORIZONTAL)
        but = wx.Button(panel, -1, "SetPropertyValues")
        but.Bind(wx.EVT_BUTTON, self.OnSetPropertyValues)
        rowsizer.Add(but, 1)
        but = wx.Button(panel, -1, "GetPropertyValues")
        but.Bind(wx.EVT_BUTTON, self.OnGetPropertyValues)
        rowsizer.Add(but, 1)
        topsizer.Add(rowsizer, 0, wx.EXPAND)
        rowsizer = wx.BoxSizer(wx.HORIZONTAL)
        but = wx.Button(panel, -1, "GetPropertyValues(as_strings=True)")
        but.Bind(wx.EVT_BUTTON, self.OnGetPropertyValues2)
        rowsizer.Add(but, 1)
        but = wx.Button(panel, -1, "AutoFill")
        but.Bind(wx.EVT_BUTTON, self.OnAutoFill)
        rowsizer.Add(but, 1)
        topsizer.Add(rowsizer, 0, wx.EXPAND)
        rowsizer = wx.BoxSizer(wx.HORIZONTAL)
        but = wx.Button(panel, -1, "Delete")
        but.Bind(wx.EVT_BUTTON, self.OnDeleteProperty)
        rowsizer.Add(but, 1)
        but = wx.Button(panel, -1, "Run Tests")
        but.Bind(wx.EVT_BUTTON, self.RunTests)
        rowsizer.Add(but, 1)
        topsizer.Add(rowsizer, 0, wx.EXPAND)

        panel.SetSizer(topsizer)
        topsizer.SetSizeHints(panel)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
예제 #12
0
    def Remplissage(self):

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Tests")))

        # CTRL Heure
        propriete = wxpg.StringProperty(label=_(u"Heure"), name="heure")
        propriete.SetHelpString(_(u"Sélectionnez une heure"))
        propriete.SetEditor("EditeurHeure")
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Mémorisation")))

        # Mémorisation des paramètres
        propriete = wxpg.EnumProperty(label=_(u"Mémoriser les paramètres"),
                                      name="memoriser_parametres",
                                      labels=[
                                          _(u"Non"),
                                          _(u"Uniquement sur cet ordinateur"),
                                          _(u"Pour tous les ordinateurs")
                                      ],
                                      values=[0, 1, 3],
                                      value=3)
        propriete.SetHelpString(_(u"Mémoriser les paramètres"))
        self.Append(propriete)

        # Répertoire de sauvegarde
        propriete = wxpg.DirProperty(label=_(u"Répertoire pour copie unique"),
                                     name="repertoire_copie",
                                     value="")
        propriete.SetHelpString(
            _(u"Enregistrer une copie unique de chaque document dans le répertoire sélectionné"
              ))
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Eléments à afficher")))

        # Afficher les coupons-réponse
        propriete = wxpg.BoolProperty(label=_(u"Afficher le coupon-réponse"),
                                      name="coupon_reponse",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher un coupon-réponse dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les messages
        propriete = wxpg.BoolProperty(label=_(u"Afficher les messages"),
                                      name="messages",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les messages dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher le rappel des impayés
        propriete = wxpg.BoolProperty(
            label=_(u"Afficher le rappel des impayés"),
            name="impayes",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher le rappel des impayés dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les codes-barres
        propriete = wxpg.BoolProperty(label=_(u"Afficher les codes-barres"),
                                      name="codes_barres",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les codes-barres dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les avis de prélèvements
        propriete = wxpg.BoolProperty(
            label=_(u"Afficher les avis de prélèvements"),
            name="avis_prelevements",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les avis de prélèvements dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Titre")))

        # Afficher le titre
        propriete = wxpg.BoolProperty(label=_(u"Afficher le titre"),
                                      name="afficher_titre",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher le titre du le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        propriete = wxpg.StringProperty(label=_(u"Titre du document"),
                                        name="titre_document",
                                        value=_(u"Facture"))
        propriete.SetHelpString(
            _(u"Saisissez le titre du document (Par défaut 'Facture')"))
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"),
                                     name="taille_texte_titre",
                                     value=19)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte du titre (29 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_titre", "SpinCtrl")

        propriete = wxpg.BoolProperty(
            label=_(u"Afficher la période de facturation"),
            name="afficher_periode",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher la période de facturation dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte de la période"),
            name="taille_texte_periode",
            value=8)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de la période (8 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_periode", "SpinCtrl")

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Tableau des prestations")))

        # Affichage condensé ou détaillé
        propriete = wxpg.EnumProperty(
            label=_(u"Affichage des prestations"),
            name="affichage_prestations",
            labels=[_(u"Détaillé"), _(u"Condensé")],
            values=[0, 1],
            value=0)
        propriete.SetHelpString(_(u"Sélectionnez un type d'affichage"))
        self.Append(propriete)

        # Intitulés des prestations
        labels = [
            _(u"Intitulé original"),
            _(u"Intitulé original + état 'Absence injustifiée'"),
            _(u"Nom du tarif"),
            _(u"Nom de l'activité")
        ]
        propriete = wxpg.EnumProperty(label=_(u"Intitulés des prestations"),
                                      name="intitules",
                                      labels=labels,
                                      values=[0, 1, 2, 3],
                                      value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez le type d'intitulé à afficher pour les prestations"
              ))
        self.Append(propriete)

        # Couleur 1
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"),
                                        name="couleur_fond_1",
                                        value=wx.Colour(255, 0, 0))
        propriete.SetHelpString(_(u"Sélectionnez la couleur 1"))
        self.Append(propriete)

        # Couleur 2
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"),
                                        name="couleur_fond_2",
                                        value=wx.Colour(255, 0, 0))
        propriete.SetHelpString(_(u"Sélectionnez la couleur 2"))
        self.Append(propriete)

        # Largeur colonne Date
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Date (ou Qté)"),
            name="largeur_colonne_date",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Date (50 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl")

        # Largeur colonne Montant HT
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant HT"),
            name="largeur_colonne_montant_ht",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant HT (50 par défaut)"
              ))
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_ht", "SpinCtrl")

        # Largeur colonne Montant TVA
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant TVA"),
            name="largeur_colonne_montant_tva",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant TVA (50 par défaut)"
              ))
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_tva", "SpinCtrl")

        # Largeur colonne Montant TTC
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant TTC"),
            name="largeur_colonne_montant_ttc",
            value=70)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant TTC (70 par défaut)"
              ))
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_ttc", "SpinCtrl")

        # Taille de texte du nom de l'individu
        propriete = wxpg.IntProperty(label=_(u"Taille de texte de l'individu"),
                                     name="taille_texte_individu",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de l'individu (9 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_individu", "SpinCtrl")

        # Taille de texte du nom de l'activité
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte de l'activité"),
            name="taille_texte_activite",
            value=6)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de l'activité (6 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_activite", "SpinCtrl")

        # Taille de texte des noms de colonnes
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des noms de colonnes"),
            name="taille_texte_noms_colonnes",
            value=5)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des noms de colonnes (5 par défaut)"
              ))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_noms_colonnes", "SpinCtrl")

        # Taille de texte des prestations
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte de des prestations"),
            name="taille_texte_prestation",
            value=7)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des prestations (7 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_prestation", "SpinCtrl")

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Autres textes")))

        propriete = wxpg.LongStringProperty(label=_(u"Texte d'introduction"),
                                            name="texte_introduction",
                                            value=u"")
        propriete.SetHelpString(
            _(u"Saisissez un texte d'introduction (Aucun par défaut)"))
        self.Append(propriete)

        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte d'introduction"),
            name="taille_texte_introduction",
            value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte d'introduction (9 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_introduction", "SpinCtrl")

        propriete = wxpg.LongStringProperty(label=_(u"Texte de conclusion"),
                                            name="texte_conclusion",
                                            value=u"")
        propriete.SetHelpString(
            _(u"Saisissez un texte de conclusion (Aucun par défaut)"))
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de texte de conclusion"),
                                     name="taille_texte_conclusion",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de conclusion (9 par défaut)"))
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_conclusion", "SpinCtrl")
    def Remplissage(self):

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Données")))

        # Afficher uniquement les individus avec infos
        propriete = wxpg.BoolProperty(label=_(u"Afficher uniquement individus avec infos"), name="individus_avec_infos", value=False)
        propriete.SetHelpString(_(u"Cochez cette case pour afficher uniquement les individus avec infos"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Page")))

        # Orientation page
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Orientation de la page"), name="orientation", liste_choix=[("automatique", _(u"Automatique")), ("portrait", _(u"Portrait")), ("paysage", _(u"Paysage"))], valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez l'orientation de la page"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Lignes")))

        # Tri
        liste_choix = [("nom", _(u"Nom")), ("prenom", _(u"Prénom")), ("age", _(u"Âge"))]
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Tri"), name="tri", liste_choix=liste_choix, valeur="nom")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez le tri"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Ordre
        liste_choix = [("croissant", _(u"Croissant")), ("decroissant", _(u"Décroissant"))]
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Ordre"), name="ordre", liste_choix=liste_choix, valeur="croissant")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez l'ordre"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Afficher lignes vierges
        propriete = wxpg.IntProperty(label=_(u"Lignes vierges"), name="nbre_lignes_vierges", value=3)
        propriete.SetEditor("SpinCtrl")
        propriete.SetHelpString(_(u"Nombre de lignes vierges à afficher en fin de liste"))
        propriete.SetAttribute("obligatoire", True)
        propriete.SetAttribute("Min", 0)
        self.Append(propriete)

        # Insérer saut de page après groupe
        propriete = wxpg.BoolProperty(label=_(u"Insérer saut de page après groupe"), name="saut_page_groupe", value=True)
        propriete.SetHelpString(_(u"Cochez cette case pour insérer un saut de page après chaque groupe"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Couleur du fond d'entête de colonne
        propriete = wxpg.ColourProperty(label=_(u"Couleur ligne des entêtes"), name="couleur_fond_entetes", value=wx.Colour(208, 208, 208) )
        propriete.SetHelpString(_(u"Sélectionnez la couleur de fond de la ligne des entêtes"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonne Photo")))

        # Afficher les photos
        liste_choix = [("non", _(u"Non")), ("petite", _(u"Petite taille")), ("moyenne", _(u"Moyenne taille")), ("grande", _(u"Grande taille"))]
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Afficher les photos"), name="afficher_photos", liste_choix=liste_choix, valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Afficher les photos individuelles"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonne Individu")))

        # Largeur colonne nom
        liste_choix = [("automatique", _(u"Automatique")),]
        for x in range(5, 305, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Largeur de la colonne"), name="largeur_colonne_nom", liste_choix=liste_choix, valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez la largeur de la colonne Nom de l'individu (en pixels)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonne Âge")))

        # Afficher l'âge des individus
        propriete = wxpg.BoolProperty(label=_(u"Afficher la colonne"), name="afficher_age", value=True)
        propriete.SetHelpString(_(u"Cochez cette case pour afficher de la colonne de l'âge des individus"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Largeur colonne âge
        liste_choix = [("automatique", _(u"Automatique")),]
        for x in range(5, 305, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Largeur de la colonne"), name="largeur_colonne_age", liste_choix=liste_choix, valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez la largeur de la colonne Âge de l'individu (en pixels)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
예제 #14
0
    def Remplissage(self):
        # Affichage
        self.Append(wxpg.PropertyCategory(_(u"Affichage")))

        # Période à afficher
        # date_debut = DICT_INFOS_IMPRESSION["date_debut"]
        # date_fin = DICT_INFOS_IMPRESSION["date_fin"]
        # if date_debut != None and date_fin != None :
        #
        #     propriete = wxpg.StringProperty(label=_(u"Date de début"), name="date_debut", value=UTILS_Dates.DateDDEnFr(date_debut))
        #     propriete.SetEditor("EditeurDate")
        #     self.Append(propriete)
        #
        #     propriete = wxpg.StringProperty(label=_(u"Date de fin"), name="date_fin", value=UTILS_Dates.DateDDEnFr(date_fin))
        #     propriete.SetEditor("EditeurDate")
        #     self.Append(propriete)

        # Masquer dates anciennes
        propriete = wxpg.BoolProperty(label=_(u"Masquer les anciennes dates"),
                                      name="masquer_dates_anciennes",
                                      value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour masquer les dates passées"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher observations
        propriete = wxpg.BoolProperty(label=_(u"Afficher les observations"),
                                      name="afficher_observations",
                                      value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher les observations"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Page
        self.Append(wxpg.PropertyCategory(_(u"Page")))

        # Orientation page
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Orientation de la page"),
            name="orientation",
            liste_choix=[("portrait", _(u"Portrait")),
                         ("paysage", _(u"Paysage"))],
            valeur="portrait")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez l'orientation de la page"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        self.Append(wxpg.PropertyCategory(_(u"Couleurs de fond")))

        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Fond entêtes"),
                                        name="couleur_fond_entetes",
                                        value=wx.Colour(230, 230, 230))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Fond colonne total"),
                                        name="couleur_fond_total",
                                        value=wx.Colour(245, 245, 245))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        self.Append(wxpg.PropertyCategory(_(u"Texte")))

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="taille_texte",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte", "SpinCtrl")

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"),
                                     name="taille_texte_titre",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte", "SpinCtrl")

        self.Append(wxpg.PropertyCategory(_(u"Colonnes")))

        # Largeur automatique
        propriete = wxpg.BoolProperty(label=_(u"Largeur auto ajustée"),
                                      name="largeur_colonnes_auto",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case pour laisser Noethys ajuster la largeur des colonnes automatiquement"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Largeur colonne labels
        propriete = wxpg.IntProperty(label=_(u"Largeur colonne date"),
                                     name="largeur_colonne_date",
                                     value=110)
        propriete.SetHelpString(
            _(u"Saisissez la largeur pour la colonne date (110 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl")
예제 #15
0
 def color(self, item, name, val):
     c = wx.Colour(val["r"] * 255, val["g"] * 255, val["b"] * 255)
     cp = wxpg.ColourProperty(item["name"], name, value=c)
     cp.AppendChild(wxpg.FloatProperty("alpha", "a", value=val["a"]))
     return cp
    def Remplissage(self):
        listeChamps = [
            "{NUMERO_FACTURE}",
            "{DATE_DEBUT}",
            "{DATE_FIN}",
            "{DATE_ECHEANCE}",
            "{SOLDE}",
            "{SOLDE_LETTRES}",
            "{TOTAL_REPORTS}",
            "{NOM_LOT}",
            "{FAMILLE_NOM}",
            "{IDFAMILLE}",
            "{FAMILLE_RUE}",
            "{FAMILLE_CP}",
            "{FAMILLE_VILLE}",
            "{DATE_EDITION_LONG}",
            "{DATE_EDITION_COURT}",
            "{ORGANISATEUR_NOM}",
            "{ORGANISATEUR_RUE}",
            "{ORGANISATEUR_CP}",
            "{ORGANISATEUR_VILLE}",
            "{ORGANISATEUR_TEL}",
            "{ORGANISATEUR_FAX}",
            "{ORGANISATEUR_MAIL}",
            "{ORGANISATEUR_SITE}",
            "{ORGANISATEUR_AGREMENT}",
            "{ORGANISATEUR_SIRET}",
            "{ORGANISATEUR_APE}",
        ]

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Modèle")))

        propriete = wxpg.EnumProperty(label=_(u"Modèle de document"),
                                      name="IDmodele",
                                      value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez le modèle de document à utiliser"))
        propriete.SetEditor("EditeurComboBoxAvecBoutons")
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.MAJ_modeles()

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Mémorisation")))

        # Mémorisation des paramètres
        propriete = wxpg.BoolProperty(label=_(u"Mémoriser les paramètres"),
                                      name="memoriser_parametres",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez mémoriser les paramètres de cette liste"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Répertoire de sauvegarde
        propriete = wxpg.DirProperty(label=_(u"Répertoire pour copie unique"),
                                     name="repertoire_copie",
                                     value="")
        propriete.SetHelpString(
            _(u"Enregistrer une copie unique de chaque document dans le répertoire sélectionné. Sinon laissez vide ce champ."
              ))
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Eléments à afficher")))

        # Affichage condensé ou détaillé
        propriete = wxpg.EnumProperty(label=_(u"Afficher le solde"),
                                      name="affichage_solde",
                                      labels=[_(u"Actuel"),
                                              _(u"Initial")],
                                      values=[0, 1],
                                      value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez un type d'affichage pour le solde (Actuel=Solde à ce jour / Initial=Solde au moment de la génération de la facture)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Afficher le rappel des impayés
        propriete = wxpg.BoolProperty(
            label=_(u"Afficher le rappel des impayés"),
            name="afficher_impayes",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher le rappel des impayés dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Intégrer les impayés au solde
        propriete = wxpg.BoolProperty(
            label=_(u"Intégrer les impayés au solde"),
            name="integrer_impayes",
            value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez intégrer les impayés dans le solde"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les coupons-réponse
        propriete = wxpg.BoolProperty(label=_(u"Afficher le coupon-réponse"),
                                      name="afficher_coupon_reponse",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher un coupon-réponse dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les messages
        propriete = wxpg.BoolProperty(label=_(u"Afficher les messages"),
                                      name="afficher_messages",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les messages dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les codes-barres
        propriete = wxpg.BoolProperty(label=_(u"Afficher les codes-barres"),
                                      name="afficher_codes_barres",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les codes-barres dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les règlements
        propriete = wxpg.BoolProperty(label=_(u"Afficher les règlements"),
                                      name="afficher_reglements",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les règlements dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les avis de prélèvements
        propriete = wxpg.BoolProperty(
            label=_(u"Afficher les avis de prélèvements"),
            name="afficher_avis_prelevements",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les avis de prélèvements dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les QF aux dates concernées
        propriete = wxpg.BoolProperty(label=_(u"Afficher les QF"),
                                      name="afficher_qf_dates",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher les QF aux dates concernées dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Titre")))

        # Afficher le titre
        propriete = wxpg.BoolProperty(label=_(u"Afficher le titre"),
                                      name="afficher_titre",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher le titre du le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        propriete = wxpg.StringProperty(label=_(u"Titre du document"),
                                        name="texte_titre",
                                        value=_(u"Facture"))
        propriete.SetHelpString(
            _(u"Saisissez le titre du document (Par défaut 'Facture'). Vous pouvez intégrer les mots-clés suivants : %s"
              ) % ", ".join(listeChamps))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"),
                                     name="taille_texte_titre",
                                     value=19)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte du titre (29 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_titre", "SpinCtrl")

        propriete = wxpg.BoolProperty(
            label=_(u"Afficher la période de facturation"),
            name="afficher_periode",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher la période de facturation dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte de la période"),
            name="taille_texte_periode",
            value=8)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de la période (8 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_periode", "SpinCtrl")

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Tableau des prestations")))

        # Affichage condensé ou détaillé
        propriete = wxpg.EnumProperty(
            label=_(u"Affichage des prestations"),
            name="affichage_prestations",
            labels=[
                _(u"Détaillé"),
                _(u"Regroupement par label"),
                _(u"Regroupement par label et montant unitaire")
            ],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(_(u"Sélectionnez un type d'affichage"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Intitulés des prestations
        labels = [
            _(u"Intitulé original"),
            _(u"Intitulé original + état 'Absence injustifiée'"),
            _(u"Nom du tarif"),
            _(u"Nom de l'activité")
        ]
        propriete = wxpg.EnumProperty(label=_(u"Intitulés des prestations"),
                                      name="intitules",
                                      labels=labels,
                                      values=[0, 1, 2, 3],
                                      value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez le type d'intitulé à afficher pour les prestations"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 1
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"),
                                        name="couleur_fond_1",
                                        value=wx.Colour(204, 204, 255))
        propriete.SetHelpString(_(u"Sélectionnez la couleur 1"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 2
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"),
                                        name="couleur_fond_2",
                                        value=wx.Colour(234, 234, 255))
        propriete.SetHelpString(_(u"Sélectionnez la couleur 2"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Largeur colonne Date
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Date (ou Qté)"),
            name="largeur_colonne_date",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Date (50 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl")

        # Largeur colonne Montant HT
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant HT"),
            name="largeur_colonne_montant_ht",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant HT (50 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_ht", "SpinCtrl")

        # Largeur colonne Montant TVA
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant TVA"),
            name="largeur_colonne_montant_tva",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant TVA (50 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_tva", "SpinCtrl")

        # Largeur colonne Montant TTC
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant TTC"),
            name="largeur_colonne_montant_ttc",
            value=70)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant TTC (70 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_ttc", "SpinCtrl")

        # Taille de texte du nom de l'individu
        propriete = wxpg.IntProperty(label=_(u"Taille de texte de l'individu"),
                                     name="taille_texte_individu",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de l'individu (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_individu", "SpinCtrl")

        # Taille de texte du nom de l'activité
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte de l'activité"),
            name="taille_texte_activite",
            value=6)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de l'activité (6 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_activite", "SpinCtrl")

        # Taille de texte des noms de colonnes
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des noms de colonnes"),
            name="taille_texte_noms_colonnes",
            value=5)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des noms de colonnes (5 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_noms_colonnes", "SpinCtrl")

        # Taille de texte des prestations
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des prestations"),
            name="taille_texte_prestation",
            value=7)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des prestations (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_prestation", "SpinCtrl")

        # Taille de texte des messages
        propriete = wxpg.IntProperty(label=_(u"Taille de texte des messages"),
                                     name="taille_texte_messages",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des messages (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_messages", "SpinCtrl")

        # Taille de texte des labels totaux
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des labels totaux"),
            name="taille_texte_labels_totaux",
            value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des labels totaux (9 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_labels_totaux", "SpinCtrl")

        # Taille de texte des totaux
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des montants totaux"),
            name="taille_texte_montants_totaux",
            value=10)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des montants totaux (10 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_montants_totaux", "SpinCtrl")

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Texte d'introduction")))

        propriete = wxpg.LongStringProperty(label=_(u"Texte d'introduction"),
                                            name="texte_introduction",
                                            value=u"")
        propriete.SetHelpString(
            _(u"Saisissez un texte d'introduction (Aucun par défaut). Vous pouvez intégrer les mots-clés suivants : %s"
              ) % ", ".join(listeChamps))
        self.Append(propriete)

        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte d'introduction"),
            name="taille_texte_introduction",
            value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte d'introduction (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_introduction", "SpinCtrl")

        propriete = wxpg.EnumProperty(label=_(u"Style de texte introduction"),
                                      name="style_texte_introduction",
                                      labels=[
                                          _(u"Normal"),
                                          _(u"Italique"), "Gras",
                                          _(u"Italique + Gras")
                                      ],
                                      values=[0, 1, 2, 3],
                                      value=0)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(
            label=_(u"Couleur de fond introduction"),
            name="couleur_fond_introduction",
            value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de fond pour le texte d'introduction"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(
            label=_(u"Couleur de bord introduction"),
            name="couleur_bord_introduction",
            value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de bord pour le texte d'introduction"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte d'introduction"),
            name="alignement_texte_introduction",
            labels=[_(u"Gauche"), _(u"Centre"),
                    _(u"Droite")],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez un type d'alignement pour le texte d'introduction"
              ))
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Texte de conclusion")))

        propriete = wxpg.LongStringProperty(label=_(u"Texte de conclusion"),
                                            name="texte_conclusion",
                                            value=u"")
        propriete.SetHelpString(
            _(u"Saisissez un texte de conclusion (Aucun par défaut). Vous pouvez intégrer les mots-clés suivants : %s"
              ) % ", ".join(listeChamps))
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de texte de conclusion"),
                                     name="taille_texte_conclusion",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de conclusion (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_conclusion", "SpinCtrl")

        propriete = wxpg.EnumProperty(label=_(u"Style de texte conclusion"),
                                      name="style_texte_conclusion",
                                      labels=[
                                          _(u"Normal"),
                                          _(u"Italique"), "Gras",
                                          _(u"Italique + Gras")
                                      ],
                                      values=[0, 1, 2, 3],
                                      value=0)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond conclusion"),
                                        name="couleur_fond_conclusion",
                                        value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de fond pour le texte de conclusion")
        )
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(label=_(u"Couleur de bord conclusion"),
                                        name="couleur_bord_conclusion",
                                        value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de bord pour le texte de conclusion")
        )
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte de conclusion"),
            name="alignement_texte_conclusion",
            labels=[_(u"Gauche"), _(u"Centre"),
                    _(u"Droite")],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez un type d'alignement pour le texte de conclusion"
              ))
        self.Append(propriete)

        # Signature
        self.Append(wxpg.PropertyCategory(_(u"Signature")))

        propriete = wxpg.ImageFileProperty(label=_(u"Image de signature"),
                                           name="image_signature")
        propriete.SetHelpString(
            _(u"Sélectionnez l'image d'une signature à insérer en fin de document"
              ))
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de l'image (en %)"),
                                     name="taille_image_signature",
                                     value=100)
        propriete.SetHelpString(
            _(u"Saisissez la taille de l'image en pourcentage (100 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_image_signature", "SpinCtrl")

        propriete = wxpg.EnumProperty(
            label=_(u"Alignement de l'image"),
            name="alignement_image_signature",
            labels=[_(u"Gauche"), _(u"Centre"),
                    _(u"Droite")],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez un type d'alignement pour l'image de signature"))
        self.Append(propriete)
예제 #17
0
 def test_propgridadvprops06(self):
     p = pg.ColourProperty()
예제 #18
0
    def Remplissage(self):
        # Période à afficher
        # date_debut = UTILS_Dates.ConvertDateDTenWX(DICT_INFOS_IMPRESSION["date_debut"])
        # date_fin = UTILS_Dates.ConvertDateDTenWX(DICT_INFOS_IMPRESSION["date_fin"])
        #
        # if date_debut != None and date_fin != None :
        #     # Affichage
        #     self.Append(wxpg.PropertyCategory(_(u"Affichage")))
        #
        #     propriete = wxpg.DateProperty(label=_(u"Date de début"), name="date_debut", value=wx.DateTime_Now())
        #     propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, wx.DP_DROPDOWN|wx.DP_SHOWCENTURY )
        #     self.Append(propriete)
        #
        #     propriete = wxpg.DateProperty(label=_(u"Date de fin"), name="date_fin", value=wx.DateTime_Now())
        #     propriete.SetAttribute(wxpg.PG_DATE_PICKER_STYLE, wx.DP_DROPDOWN|wx.DP_SHOWCENTURY )
        #     self.Append(propriete)

        # Page
        self.Append(wxpg.PropertyCategory(_(u"Page")))

        # Orientation page
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Orientation de la page"),
            name="orientation",
            liste_choix=[("portrait", _(u"Portrait")),
                         ("paysage", _(u"Paysage"))],
            valeur="portrait")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez l'orientation de la page"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        self.Append(wxpg.PropertyCategory(_(u"Couleurs de fond")))

        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Fond entêtes"),
                                        name="couleur_fond_entetes",
                                        value=wx.Colour(230, 230, 230))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=_(u"Fond colonne total"),
                                        name="couleur_fond_total",
                                        value=wx.Colour(245, 245, 245))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        self.Append(wxpg.PropertyCategory(_(u"Texte")))

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="taille_texte",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte", "SpinCtrl")

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"),
                                     name="taille_texte_titre",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte", "SpinCtrl")

        self.Append(wxpg.PropertyCategory(_(u"Colonnes")))

        # Largeur automatique
        propriete = wxpg.BoolProperty(label=_(u"Largeur auto ajustée"),
                                      name="largeur_colonnes_auto",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case pour laisser Noethys ajuster la largeur des colonnes automatiquement"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Largeur colonne labels
        propriete = wxpg.IntProperty(label=_(u"Largeur colonne date"),
                                     name="largeur_colonne_date",
                                     value=110)
        propriete.SetHelpString(
            _(u"Saisissez la largeur pour la colonne date (110 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl")
예제 #19
0
    def Remplissage(self):
        listeChamps = [
            "{SIGNATAIRE_GENRE}",
            "{SIGNATAIRE_NOM}",
            "{SIGNATAIRE_FONCTION}",
            "{NUM_ATTESTATION}",
            "{DATE_DEBUT}",
            "{DATE_FIN}",
            "{DATE_EDITION}",
            "{LIEU_EDITION}",
            "{NOMS_INDIVIDUS}",
            "{DESTINATAIRE_NOM}",
            "{DESTINATAIRE_RUE}",
            "{DESTINATAIRE_VILLE}",
            "{TOTAL_PERIODE}",
            "{TOTAL_REGLE}",
            "{SOLDE_DU}",
            "{ORGANISATEUR_NOM}",
            "{ORGANISATEUR_RUE}",
            "{ORGANISATEUR_CP}",
            "{ORGANISATEUR_VILLE}",
            "{ORGANISATEUR_TEL}",
            "{ORGANISATEUR_FAX}",
            "{ORGANISATEUR_MAIL}",
            "{ORGANISATEUR_SITE}",
            "{ORGANISATEUR_AGREMENT}",
            "{ORGANISATEUR_SIRET}",
            "{ORGANISATEUR_APE}",
        ]

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Modèle")))

        propriete = wxpg.EnumProperty(label=_(u"Modèle de document"),
                                      name="IDmodele",
                                      value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez le modèle de document à utiliser"))
        propriete.SetEditor("EditeurComboBoxAvecBoutons")
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.MAJ_modeles()

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Signataire")))

        propriete = wxpg.EnumProperty(label=_(u"Signataire du document"),
                                      name="signataire",
                                      value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez le signataire du document (à renseigner au préalable dans le paramétrage de l'activité)"
              ))
        propriete.SetAttribute("obligatoire", True)
        propriete.SetAttribute("reinitialisation_interdite", True)
        self.Append(propriete)
        self.MAJ_signataires()

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Mémorisation")))

        # Mémorisation des paramètres
        propriete = wxpg.BoolProperty(label=_(u"Mémoriser les paramètres"),
                                      name="memoriser_parametres",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez mémoriser les paramètres de cette liste"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Répertoire de sauvegarde
        propriete = wxpg.DirProperty(label=_(u"Répertoire pour copie unique"),
                                     name="repertoire_copie",
                                     value="")
        propriete.SetHelpString(
            _(u"Enregistrer une copie unique de chaque document dans le répertoire sélectionné. Sinon laissez vide ce champ."
              ))
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Titre")))

        # Afficher le titre
        propriete = wxpg.BoolProperty(label=_(u"Afficher le titre"),
                                      name="afficher_titre",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher le titre du le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        propriete = wxpg.StringProperty(label=_(u"Titre du document"),
                                        name="texte_titre",
                                        value=_(u"Attestation de présence"))
        propriete.SetHelpString(
            _(u"Saisissez le titre du document (Par défaut 'Attestation de présence'). Vous pouvez intégrer les mots-clés suivants : %s"
              ) % ", ".join(listeChamps))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de texte du titre"),
                                     name="taille_texte_titre",
                                     value=19)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte du titre (29 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_titre", "SpinCtrl")

        propriete = wxpg.BoolProperty(
            label=_(u"Afficher la période de facturation"),
            name="afficher_periode",
            value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case si vous souhaitez afficher la période de facturation dans le document"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte de la période"),
            name="taille_texte_periode",
            value=8)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de la période (8 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_periode", "SpinCtrl")

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Tableau des prestations")))

        # Affichage condensé ou détaillé
        propriete = wxpg.EnumProperty(
            label=_(u"Affichage des prestations"),
            name="affichage_prestations",
            labels=[_(u"Détaillé"), _(u"Condensé")],
            values=[0, 1],
            value=0)
        propriete.SetHelpString(_(u"Sélectionnez un type d'affichage"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Intitulés des prestations
        labels = [
            _(u"Intitulé original"),
            _(u"Intitulé original + état 'Absence injustifiée'"),
            _(u"Nom du tarif"),
            _(u"Nom de l'activité")
        ]
        propriete = wxpg.EnumProperty(label=_(u"Intitulés des prestations"),
                                      name="intitules",
                                      labels=labels,
                                      values=[0, 1, 2, 3],
                                      value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez le type d'intitulé à afficher pour les prestations"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 1
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"),
                                        name="couleur_fond_1",
                                        value=wx.Colour(204, 204, 255))
        propriete.SetHelpString(_(u"Sélectionnez la couleur 1"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 2
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"),
                                        name="couleur_fond_2",
                                        value=wx.Colour(234, 234, 255))
        propriete.SetHelpString(_(u"Sélectionnez la couleur 2"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Largeur colonne Date
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Date (ou Qté)"),
            name="largeur_colonne_date",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Date (50 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_date", "SpinCtrl")

        # Largeur colonne Montant HT
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant HT"),
            name="largeur_colonne_montant_ht",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant HT (50 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_ht", "SpinCtrl")

        # Largeur colonne Montant TVA
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant TVA"),
            name="largeur_colonne_montant_tva",
            value=50)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant TVA (50 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_tva", "SpinCtrl")

        # Largeur colonne Montant TTC
        propriete = wxpg.IntProperty(
            label=_(u"Largeur de la colonne Montant TTC"),
            name="largeur_colonne_montant_ttc",
            value=70)
        propriete.SetHelpString(
            _(u"Saisissez la largeur de la colonne Montant TTC (70 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("largeur_colonne_montant_ttc", "SpinCtrl")

        # Taille de texte du nom de l'individu
        propriete = wxpg.IntProperty(label=_(u"Taille de texte de l'individu"),
                                     name="taille_texte_individu",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de l'individu (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_individu", "SpinCtrl")

        # Taille de texte du nom de l'activité
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte de l'activité"),
            name="taille_texte_activite",
            value=6)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de l'activité (6 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_activite", "SpinCtrl")

        # Taille de texte des noms de colonnes
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des noms de colonnes"),
            name="taille_texte_noms_colonnes",
            value=5)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des noms de colonnes (5 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_noms_colonnes", "SpinCtrl")

        # Taille de texte des prestations
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des prestations"),
            name="taille_texte_prestation",
            value=7)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des prestations (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_prestation", "SpinCtrl")

        # Taille de texte des messages
        propriete = wxpg.IntProperty(label=_(u"Taille de texte des messages"),
                                     name="taille_texte_messages",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des messages (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_messages", "SpinCtrl")

        # Taille de texte des labels totaux
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des labels totaux"),
            name="taille_texte_labels_totaux",
            value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des labels totaux (9 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_labels_totaux", "SpinCtrl")

        # Taille de texte des totaux
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte des montants totaux"),
            name="taille_texte_montants_totaux",
            value=10)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte des montants totaux (10 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_montants_totaux", "SpinCtrl")

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Prestations antérieures")))

        # Taille de texte
        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte du commentaire"),
            name="taille_texte_prestations_anterieures",
            value=5)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte du commentaire de bas de tableaux (5 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_prestations_anterieures",
                               "SpinCtrl")

        # Texte d'information
        propriete = wxpg.LongStringProperty(
            label=_(u"Texte d'information"),
            name="texte_prestations_anterieures",
            value=
            _(u"Des prestations antérieures ont été reportées sur cette attestation."
              ))
        propriete.SetHelpString(
            _(u"Saisissez un texte d'information pour les prestations antérieures"
              ))
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Texte d'introduction")))

        propriete = wxpg.LongStringProperty(label=_(u"Texte d'introduction"),
                                            name="texte_introduction",
                                            value=TEXTE_INTRO)
        propriete.SetHelpString(
            _(u"Saisissez un texte d'introduction. Vous pouvez intégrer les mots-clés suivants : %s"
              ) % ", ".join(listeChamps))
        self.Append(propriete)

        propriete = wxpg.IntProperty(
            label=_(u"Taille de texte d'introduction"),
            name="taille_texte_introduction",
            value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte d'introduction (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_introduction", "SpinCtrl")

        propriete = wxpg.EnumProperty(label=_(u"Style de texte introduction"),
                                      name="style_texte_introduction",
                                      labels=[
                                          _(u"Normal"),
                                          _(u"Italique"), "Gras",
                                          _(u"Italique + Gras")
                                      ],
                                      values=[0, 1, 2, 3],
                                      value=1)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(
            label=_(u"Couleur de fond introduction"),
            name="couleur_fond_introduction",
            value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de fond pour le texte d'introduction"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(
            label=_(u"Couleur de bord introduction"),
            name="couleur_bord_introduction",
            value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de bord pour le texte d'introduction"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte d'introduction"),
            name="alignement_texte_introduction",
            labels=[_(u"Gauche"), _(u"Centre"),
                    _(u"Droite")],
            values=[0, 1, 2],
            value=1)
        propriete.SetHelpString(
            _(u"Sélectionnez un type d'alignement pour le texte d'introduction"
              ))
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Texte de conclusion")))

        propriete = wxpg.LongStringProperty(label=_(u"Texte de conclusion"),
                                            name="texte_conclusion",
                                            value=u"")
        propriete.SetHelpString(
            _(u"Saisissez un texte de conclusion (Aucun par défaut). Vous pouvez intégrer les mots-clés suivants : %s"
              ) % ", ".join(listeChamps))
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de texte de conclusion"),
                                     name="taille_texte_conclusion",
                                     value=9)
        propriete.SetHelpString(
            _(u"Saisissez la taille de texte de conclusion (9 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_texte_conclusion", "SpinCtrl")

        propriete = wxpg.EnumProperty(label=_(u"Style de texte conclusion"),
                                      name="style_texte_conclusion",
                                      labels=[
                                          _(u"Normal"),
                                          _(u"Italique"), "Gras",
                                          _(u"Italique + Gras")
                                      ],
                                      values=[0, 1, 2, 3],
                                      value=0)
        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond conclusion"),
                                        name="couleur_fond_conclusion",
                                        value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de fond pour le texte de conclusion")
        )
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.ColourProperty(label=_(u"Couleur de bord conclusion"),
                                        name="couleur_bord_conclusion",
                                        value=wx.Colour(255, 255, 255))
        propriete.SetHelpString(
            _(u"Sélectionnez une couleur de bord pour le texte de conclusion")
        )
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte de conclusion"),
            name="alignement_texte_conclusion",
            labels=[_(u"Gauche"), _(u"Centre"),
                    _(u"Droite")],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez un type d'alignement pour le texte de conclusion"
              ))
        self.Append(propriete)

        # Signature
        self.Append(wxpg.PropertyCategory(_(u"Signature")))

        propriete = wxpg.ImageFileProperty(label=_(u"Image de signature"),
                                           name="image_signature")
        propriete.SetHelpString(
            _(u"Sélectionnez l'image d'une signature à insérer en fin de document"
              ))
        self.Append(propriete)

        propriete = wxpg.IntProperty(label=_(u"Taille de l'image (en %)"),
                                     name="taille_image_signature",
                                     value=100)
        propriete.SetHelpString(
            _(u"Saisissez la taille de l'image en pourcentage (100 par défaut)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("taille_image_signature", "SpinCtrl")

        propriete = wxpg.EnumProperty(
            label=_(u"Alignement de l'image"),
            name="alignement_image_signature",
            labels=[_(u"Gauche"), _(u"Centre"),
                    _(u"Droite")],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(
            _(u"Sélectionnez un type d'alignement pour l'image de signature"))
        self.Append(propriete)
예제 #20
0
    def UpdateHeaderValues(self):

        # clear the existing general page
        self._general_page.Clear()

        # get main frame widget - abort if something goes wrong
        # for instance - handle case where all tabs are closed
        try:

            try:
                image = component.getUtility(ICurrentImage)
            except component.ComponentLookupError:
                # no image is loaded
                return

            header = image.GetHeader().copy()
            dicom_header = image.GetDICOMHeader()
            pageState = component.getUtility(
                ICurrentViewportManager).GetPageState()
        except:
            logging.exception("ImageInfo")
            return

        # if page isn't an image, get out of here early
        if pageState.GetPageType() != "image":
            return

        # remove hidden properties

        # Update all text fields in the dialog box
        # Title
        val = dicom_header.PatientsName
        if isinstance(val, list):
            val = '\\'.join(val)

        properties = {
            'Image Properties': [],
            'Patient/Subject Info': [],
            'Scan Properties': [],
            'Reconstruction Properties': [],
            "Display Properties": [],
            'Additional Properties': []
        }

        prop = Property("Image Properties", "Number of Channels",
                        image.GetNumberOfScalarComponents(), int, True)
        properties[prop.category].append(prop)

        spacing = image.GetSpacing()
        origin = image.GetOrigin()
        (SizeX, SizeY, SizeZ) = image.GetDimensions()
        _range = image.GetScalarRange()
        _size = SizeX * SizeY * SizeZ * image.GetScalarSize(
        ) * image.GetNumberOfScalarComponents()

        prop = Property("Image Properties", "Minimum Value", float(_range[0]),
                        float, True)
        properties[prop.category].append(prop)

        prop = Property("Image Properties", "Maximum Value", float(_range[1]),
                        float, True)
        properties[prop.category].append(prop)

        prop = Property(
            "Image Properties", "Voxel Size (mm)",
            "%.4F %.4F %.4F" % (spacing[0], spacing[1], spacing[2]), str, True)
        properties[prop.category].append(prop)

        prop = Property("Image Properties", "Image Origin (mm)",
                        "%.4F %.4F %.4F" % (origin[0], origin[1], origin[2]),
                        str, True)
        properties[prop.category].append(prop)

        prop = Property("Image Properties", "Image Bit-depth",
                        int(image.GetScalarSize() * 8), int, True)
        properties[prop.category].append(prop)

        prop = Property("Image Properties", "Image Data Type",
                        image.GetScalarTypeAsString(), str, True)
        properties[prop.category].append(prop)

        prop = Property("Image Properties", "Dimensions",
                        "%d %d %d" % (SizeX, SizeY, SizeZ), str, True)
        properties[prop.category].append(prop)

        prop = Property("Image Properties", "Memory Required",
                        self.sizeof_fmt(_size), str, True)
        properties[prop.category].append(prop)

        prop = Property("Patient/Subject Info", "Title",
                        str(val).encode('utf-8'), str, False)
        properties[prop.category].append(prop)

        val = dicom_header.SeriesDescription
        prop = Property("Patient/Subject Info", "Subject",
                        str(val).encode('utf-8'), str, False)
        properties[prop.category].append(prop)

        if 'PatientPosition' in dicom_header:
            pos = dicom_header.PatientPosition
        else:
            pos = ''

        if pos in self.patient_positions:
            index = self.patient_positions.keys().index(pos)
        else:
            index = 0

        prop = Property("Patient/Subject Info", "Patient Position", index,
                        self.patient_positions.values(), False)
        properties[prop.category].append(prop)

        # Modality
        modality = dicom_header.Modality

        if modality in self.modtostring:
            index = self.modtostring.keys().index(modality)
        else:
            index = 0

        prop = Property("Scan Properties", "Modality", index,
                        self.modtostring.values(), False)
        properties[prop.category].append(prop)

        try:
            _d = image.GetDate()  # DICOM-style date
            dmy = None
            try:
                year, month, day = int(_d[0:4]), int(_d[4:6]), int(_d[6:8])
            except:
                logging.error("Unable to parse DICOM date: {0}".format(_d))
            _t = image.GetTime()  # DICOM_style time
            try:
                hour, minute, second, microsecond = int(_t[0:2]), int(
                    _t[2:4]), int(_t[4:6]), _t[6:]
                dmy = (day, month - 1, year)
            except:
                logging.error("Unable to parse DICOM time: {0}".format(_t))

            if dmy:
                prop = Property("Scan Properties", "Date",
                                wx.DateTimeFromDMY(*dmy), wx.DateTime, False)
                properties[prop.category].append(prop)
        except:
            logging.exception("UpdateHeaderValues")

        # Scan-related fields (deprecated)
        scan_mapping = {
            'spacingunit': (str, 'Measurement Unit'),
        }

        # handle old-style keywords (deprecated)
        for key in header:
            if key.startswith('scan_') or key.startswith('scanner_'):
                if key in scan_mapping:
                    dtype, label = scan_mapping[key]
                else:
                    dtype, label = (str, key)

                if dtype == float or isinstance(header[key], float):
                    prop = Property("Scan Properties", label,
                                    float(header[key]), float, False)
                elif dtype == int or isinstance(header[key], int):
                    prop = Property("Scan Properties", label, int(header[key]),
                                    int, False)
                else:
                    prop = Property("Scan Properties", label, str(header[key]),
                                    str, False)

                properties[prop.category].append(prop)

        # scan-related DICOM fields
        dicom_scan_fields = {
            'ExposureTime': (float, 'Exposure Time (ms)'),
            'KVP': (float, 'X-Ray Voltage (kVp)'),
            'XRayTubeCurrent': (float, 'X-Ray Tube Current (mA)'),
            'XRayTubeCurrentInmA': (float, u'X-Ray Tube Current (mA)'),
            'XRayTubeCurrentInuA': (float, u'X-Ray Tube Current (\u00b5A)'),
            'DistanceSourceToPatient': (float, 'Object Position (mm)'),
            'DistanceSourceToDetector': (float, 'Detector Position (mm)'),
            'Manufacturer': (str, 'Scanner Manufacturer'),
            'ManufacturerModelName': (str, 'Scanner Model'),
            'ProtocolName': (str, 'Protocol Name'),
        }

        # handle DICOM keywords
        for key in dicom_scan_fields:
            if key in dicom_header:
                dtype, label = dicom_scan_fields[key]
                value = dicom_header.get(key)
                if dtype == float:
                    try:
                        value = float(value)
                        prop = Property("Scan Properties", label, value, float,
                                        False)
                        properties[prop.category].append(prop)
                        continue
                    except:
                        dtype = str
                elif dtype == int:
                    try:
                        value = int(value)
                        prop = Property("Scan Properties", label, value, int,
                                        False)
                        properties[prop.category].append(prop)
                        continue
                    except:
                        dtype = str

                prop = Property("Scan Properties", label,
                                str(dicom_header.get(key)), str, False)
                properties[prop.category].append(prop)

        # Reconstruction-related fields
        recon_property_created = False
        recon_mapping = {
            'recon_sw_version': (str, 'Software Version'),
            'recon_git_sha1': (str, 'Software SHA1'),
            'recon_date': (str, 'Reconstruction Date'),
            'recon_center_of_rotation': (float, 'Center of Rotation'),
            'recon_central_slice': (float, 'Central Slice'),
            'recon_filter_type': (str, 'Filter Type'),
            'recon_auth': (int, 'Reconstruction Authorized'),
            'recon_cmdLine': (str, 'Commandline'),
            'recon_gate_delay_us': (float, u'Gating delay (\u00b5s)'),
            'recon_gate_window_us': (float, u'Gating window (\u00b5s)'),
            'ct_recon_macaddr': (str, 'Ethernet Address'),
            'ct_recon_every_nth_proj': (int, 'View Skip'),
            'ct_cone_angle': (float, 'Cone Angle (deg)')
        }

        for key in header.keys():
            if key.startswith('recon_') or key.startswith(
                    'ct_recon_') or key in ('y_bin', 'z_bin'):
                if key in recon_mapping:
                    dtype, label = recon_mapping[key]
                else:
                    dtype, label = (str, key)

                if dtype == float:
                    prop = Property("Reconstruction Properties", label,
                                    float(header[key]), float, False)
                    properties[prop.category].append(prop)
                else:
                    prop = Property("Reconstruction Properties", label,
                                    str(header[key]), str, False)
                    properties[prop.category].append(prop)

                del (header[key])

        try:
            if modality == 'CT':
                prop = Property("Reconstruction Properties", "Air Value",
                                float(header.get('air', 0.0)), float, False)
                properties[prop.category].append(prop)
                prop = Property("Reconstruction Properties", "Water Value",
                                float(header.get('water', 0.0)), float, False)
                properties[prop.category].append(prop)
                prop = Property("Reconstruction Properties", "Bone Value (HU",
                                int(header.get('boneHU', 0)), int, False)
                properties[prop.category].append(prop)
        except:
            pass

        self._general_page.Append(wxpg.PropertyCategory("Display Properties"))
        prop = Property("Display Properties", "Texture Interpolation",
                        bool(self._config.bInterpolateTextures), bool, False)
        properties[prop.category].append(prop)

        numC = image.GetNumberOfScalarComponents()
        prop = Property("Display Properties",
                        "Colour Table",
                        pageState.lut_index,
                        self.LD.get_names(),
                        False,
                        disabled=(numC > 1))
        properties[prop.category].append(prop)

        # grab configuration object, see if there's any colour info in there
        try:
            root = MicroViewObjectShelve.MicroViewObjectShelve.getObject(
            ).getRoot()
            state = root['options.pane3D.background']
            bg1 = state.GetTopColour()
            bg2 = state.GetBottomColour()
            use_gradient = state.GetGradientState()
        except:
            bg1 = bg2 = (0, 0, 0)
            use_gradient = True

        # for the moment, colour editing shall be disabled
        prop = Property("Display Properties", "Background Colour #1", bg1,
                        tuple, False)
        properties[prop.category].append(prop)
        prop = Property("Display Properties", "Background Colour #2", bg2,
                        tuple, False)
        properties[prop.category].append(prop)
        prop = Property("Display Properties", "Enable Background Gradient",
                        use_gradient, bool, False)
        properties[prop.category].append(prop)

        # everything else
        for key in header:
            _k = key.lower()
            if not (_k.startswith('recon_') or _k.startswith('scan_')
                    or _k.startswith('scanner_') or _k.startswith('hidden')):
                if key.lower() not in ('size', 'air', 'water', 'bonehu',
                                       'y_bin', 'z_bin'):
                    try:
                        prop = Property("Additional Properties", key,
                                        str(header[key]), str, False)
                        properties[prop.category].append(prop)
                    except:
                        logging.warning("duplicate tag: {0}".format(key))

        _filter = None
        if self._search_filter:
            _filter = self._search_filter.lower()
            _filter = _filter.split()

        added_categories = []

        for category in properties:
            for property in properties[category]:

                name = property.name
                value = property.value

                # apply filter
                should_display = False
                if _filter:
                    for _f in _filter:
                        if _f in unicode(name).lower() or _f in unicode(
                                repr(value)).lower():
                            should_display = True
                            break
                    if not should_display:
                        continue

                if category not in added_categories:
                    added_categories.append(category)
                    self._general_page.Append(wxpg.PropertyCategory(category))

                if property.value_type is int:
                    _id = wxpg.IntProperty(property.name, value=property.value)
                elif property.value_type is float:
                    _id = wxpg.FloatProperty(property.name,
                                             value=property.value)
                elif property.value_type is str:
                    _id = wxpg.StringProperty(property.name,
                                              value=property.value)
                elif isinstance(property.value_type, list):
                    # enum
                    _id = wxpg.EnumProperty(property.name, property.name,
                                            property.value_type,
                                            range(len(property.value_type)),
                                            property.value)
                elif property.value_type is wx.DateTime:
                    # date
                    _id = wxpg.DateProperty(property.name,
                                            value=property.value)
                    _id.SetAttribute(wxpg.PG_DATE_PICKER_STYLE,
                                     wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
                elif property.value_type is bool:
                    _id = wxpg.BoolProperty(property.name,
                                            value=property.value)
                elif property.value_type is tuple:
                    _id = wxpg.ColourProperty(property.name,
                                              value=property.value)

                self._general_page.Append(_id)
                if property.read_only:
                    _id.ChangeFlag(wxpg.PG_PROP_READONLY, True)
                if property.disabled:
                    self._general_page.DisableProperty(_id)
예제 #21
0
    def Remplissage(self):
        listeChampsPiedsPages = [
            "{DATE_JOUR}", "{TITRE_DOCUMENT}", "{NOM_ORGANISATEUR}",
            "{NUM_PAGE}", "{NBRE_PAGES}"
        ]

        # --------------------------- Divers ------------------------------------------
        self.Append(wxpg.PropertyCategory("Divers"))

        # Inclure les images
        propriete = wxpg.BoolProperty(label=INCLURE_IMG_LABEL,
                                      name="inclure_images",
                                      value=True)
        propriete.SetHelpString(INCLURE_IMG_HELP)
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Entete de colonne sur chaque page
        propriete = wxpg.BoolProperty(label=AFFICHER_ENTETE_LABEL,
                                      name="entetes_toutes_pages",
                                      value=True)
        propriete.SetHelpString(AFFICHER_ENTETE_HELP)
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Qualité de l'impression
        propriete = wxpg.EnumProperty(label=CHOIX_QUALITE_LABEL,
                                      name="qualite_impression",
                                      labels=CHOIX_QUALITE_LABELS,
                                      values=CHOIX_QUALITE_VALEURS,
                                      value=wx.PRINT_QUALITY_MEDIUM)
        propriete.SetHelpString(CHOIX_QUALITE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Marges ------------------------------------------
        self.Append(wxpg.PropertyCategory("Marges"))

        # Gauche
        propriete = wxpg.IntProperty(label=MARGE_GAUCHE_LABEL,
                                     name="marge_gauche",
                                     value=5)
        propriete.SetHelpString(TAILLE_MARGE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_gauche", "SpinCtrl")

        # Droite
        propriete = wxpg.IntProperty(label=MARGE_DROITE_LABEL,
                                     name="marge_droite",
                                     value=5)
        propriete.SetHelpString(TAILLE_MARGE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_droite", "SpinCtrl")

        # Haut
        propriete = wxpg.IntProperty(label=MARGE_HAUT_LABEL,
                                     name="marge_haut",
                                     value=5)
        propriete.SetHelpString(TAILLE_MARGE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_haut", "SpinCtrl")

        # Bas
        propriete = wxpg.IntProperty(label=MARGE_BAS_LABEL,
                                     name="marge_bas",
                                     value=5)
        propriete.SetHelpString(TAILLE_MARGE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("marge_bas", "SpinCtrl")

        # --------------------------- Quadrillage ------------------------------------------
        self.Append(wxpg.PropertyCategory("Quadrillage"))

        # Epaisseur de trait
        propriete = wxpg.FloatProperty(label=EPAISSEUR_TRAIT_LABEL,
                                       name="grille_trait_epaisseur",
                                       value=0.25)
        propriete.SetHelpString(EPAISSEUR_TRAIT_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur de trait
        propriete = wxpg.ColourProperty(label=COULEUR_TRAIT_LABEL,
                                        name="grille_trait_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TRAIT_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Titre de liste ------------------------------------------
        self.Append(wxpg.PropertyCategory("Titre"))

        # Taille police
        propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL,
                                     name="titre_taille_texte",
                                     value=16)
        propriete.SetHelpString(TAILLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("titre_taille_texte", "SpinCtrl")

        # Style
        propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL,
                                      name="titre_style",
                                      labels=STYLE_TEXTE_LABELS,
                                      values=STYLE_TEXTE_VALEURS,
                                      value=wx.FONTWEIGHT_BOLD)
        propriete.SetHelpString(STYLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL,
                                        name="titre_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = ["Gauche", "Centre", "Droite"]
        propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL,
                                      name="titre_alignement",
                                      labels=ALIGNEMENT_TEXTE_LABELS,
                                      values=ALIGNEMENT_TEXTE_VALUES,
                                      value=wx.ALIGN_LEFT)
        propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Intro ------------------------------------------
        self.Append(wxpg.PropertyCategory("Introduction"))

        # Taille police
        propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL,
                                     name="intro_taille_texte",
                                     value=7)
        propriete.SetHelpString(TAILLE_TEXTE_INTRO_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("intro_taille_texte", "SpinCtrl")

        # Style
        propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL,
                                      name="intro_style",
                                      labels=STYLE_TEXTE_LABELS,
                                      values=STYLE_TEXTE_VALEURS,
                                      value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(STYLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL,
                                        name="intro_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL,
                                      name="intro_alignement",
                                      labels=ALIGNEMENT_TEXTE_LABELS,
                                      values=ALIGNEMENT_TEXTE_VALUES,
                                      value=wx.ALIGN_LEFT)
        propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Titre de colonne  ------------------------------------------
        self.Append(wxpg.PropertyCategory("Entête de colonne"))

        # Taille police
        propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL,
                                     name="titre_colonne_taille_texte",
                                     value=8)
        propriete.SetHelpString(TAILLE_TEXTE_TITRE_COL_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("titre_colonne_taille_texte", "SpinCtrl")

        #  Style
        propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL,
                                      name="titre_colonne_style",
                                      labels=STYLE_TEXTE_LABELS,
                                      values=STYLE_TEXTE_VALEURS,
                                      value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(STYLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL,
                                        name="titre_colonne_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL,
                                      name="titre_colonne_alignement",
                                      labels=ALIGNEMENT_TEXTE_LABELS,
                                      values=ALIGNEMENT_TEXTE_VALUES,
                                      value=wx.ALIGN_CENTER)
        propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur de fond
        propriete = wxpg.ColourProperty(label=COULEUR_FOND_LABEL,
                                        name="titre_colonne_couleur_fond",
                                        value=wx.Colour(240, 240, 240))
        propriete.SetHelpString(COULEUR_FOND_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Ligne  ------------------------------------------
        self.Append(wxpg.PropertyCategory("Ligne"))

        # Taille police
        propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL,
                                     name="ligne_taille_texte",
                                     value=8)
        propriete.SetHelpString(TAILLE_TEXTE_LIGNE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("ligne_taille_texte", "SpinCtrl")

        #  Style
        labels = ["Normal", "Light", "Gras"]
        valeurs = [
            wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD
        ]
        propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL,
                                      name="ligne_style",
                                      labels=STYLE_TEXTE_LABELS,
                                      values=STYLE_TEXTE_VALEURS,
                                      value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(STYLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL,
                                        name="ligne_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Multilignes autorisé
        propriete = wxpg.BoolProperty(label=AUTORISER_SAUT_LIGNE_LABEL,
                                      name="ligne_multilignes",
                                      value=True)
        propriete.SetHelpString(AUTORISER_SAUT_LIGNE_HELP)
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # --------------------------- Pied de page  ------------------------------------------
        self.Append(wxpg.PropertyCategory("Pied de page"))

        # Texte de gauche
        valeur = "{DATE_JOUR}"
        propriete = wxpg.StringProperty(label=PIED_TEXTE_GAUCHE_LABEL,
                                        name="pied_page_texte_gauche",
                                        value=valeur)
        propriete.SetHelpString(
            "Saisissez le texte de gauche du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s"
            % (valeur, ", ".join(listeChampsPiedsPages)))
        self.Append(propriete)

        # Texte du milieu
        valeur = "{TITRE_DOCUMENT} - {NOM_ORGANISATEUR}"
        propriete = wxpg.StringProperty(label=PIED_TEXTE_MILIEU_LABEL,
                                        name="pied_page_texte_milieu",
                                        value=valeur)
        propriete.SetHelpString(
            "Saisissez le texte du milieu du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s"
            % (valeur, ", ".join(listeChampsPiedsPages)))
        self.Append(propriete)

        # Texte de droite
        valeur = "{NUM_PAGE} / {NBRE_PAGES}"
        propriete = wxpg.StringProperty(label=PIED_TEXTE_DROITE_LABEL,
                                        name="pied_page_texte_droite",
                                        value=valeur)
        propriete.SetHelpString(
            "Saisissez le texte de droite du pied de page (Par défaut '%s'). Vous pouvez intégrer les mots-clés suivants : %s"
            % (valeur, ", ".join(listeChampsPiedsPages)))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL,
                                     name="pied_page_taille_texte",
                                     value=8)
        propriete.SetHelpString(TAILLE_TEXTE_PIED_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("pied_page_taille_texte", "SpinCtrl")

        #  Style
        labels = ["Normal", "Light", "Gras"]
        valeurs = [
            wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD
        ]
        propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL,
                                      name="pied_page_style",
                                      labels=STYLE_TEXTE_LABELS,
                                      values=STYLE_TEXTE_VALEURS,
                                      value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(STYLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL,
                                        name="pied_page_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Pied de colonne  ------------------------------------------
        self.Append(wxpg.PropertyCategory("Pied de colonne"))

        # Taille police
        propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL,
                                     name="pied_colonne_taille_texte",
                                     value=8)
        propriete.SetHelpString(TAILLE_TEXTE_PIED_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("pied_colonne_taille_texte", "SpinCtrl")

        #  Style
        labels = ["Normal", "Light", "Gras"]
        valeurs = [
            wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD
        ]
        propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL,
                                      name="pied_colonne_style",
                                      labels=STYLE_TEXTE_LABELS,
                                      values=STYLE_TEXTE_VALEURS,
                                      value=wx.FONTWEIGHT_NORMAL)
        propriete.SetHelpString(STYLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL,
                                        name="pied_colonne_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = ["Gauche", "Centre", "Droite"]
        propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL,
                                      name="pied_colonne_alignement",
                                      labels=ALIGNEMENT_TEXTE_LABELS,
                                      values=ALIGNEMENT_TEXTE_VALUES,
                                      value=wx.ALIGN_CENTER)
        propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur de fond
        propriete = wxpg.ColourProperty(label=COULEUR_FOND_LABEL,
                                        name="pied_colonne_couleur_fond",
                                        value=wx.Colour(240, 240, 240))
        propriete.SetHelpString(COULEUR_FOND_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- Pied de liste ------------------------------------------
        self.Append(wxpg.PropertyCategory("Conclusion"))

        # Taille police
        propriete = wxpg.IntProperty(label=TAILLE_TEXTE_LABEL,
                                     name="conclusion_taille_texte",
                                     value=7)
        propriete.SetHelpString(TAILLE_TEXTE_CONCL_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("conclusion_taille_texte", "SpinCtrl")

        # Style
        propriete = wxpg.EnumProperty(label=STYLE_TEXTE_LABEL,
                                      name="conclusion_style",
                                      labels=STYLE_TEXTE_LABELS,
                                      values=STYLE_TEXTE_VALEURS,
                                      value=wx.FONTWEIGHT_BOLD)
        propriete.SetHelpString(STYLE_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur
        propriete = wxpg.ColourProperty(label=COULEUR_TEXTE_LABEL,
                                        name="conclusion_couleur",
                                        value=wx.BLACK)
        propriete.SetHelpString(COULEUR_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Alignement
        labels = ["Gauche", "Centre", "Droite"]
        propriete = wxpg.EnumProperty(label=ALIGNEMENT_TEXTE_LABEL,
                                      name="conclusion_alignement",
                                      labels=ALIGNEMENT_TEXTE_LABELS,
                                      values=ALIGNEMENT_TEXTE_VALUES,
                                      value=wx.ALIGN_LEFT)
        propriete.SetHelpString(ALIGNEMENT_TEXTE_HELP)
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
    def Remplissage(self):

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Page")))

        # Orientation page
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Orientation de la page"),
            name="orientation",
            liste_choix=[("automatique", _(u"Automatique")),
                         ("portrait", _(u"Portrait")),
                         ("paysage", _(u"Paysage"))],
            valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez l'orientation de la page"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Lignes")))

        # Tri
        liste_choix = [("nom", _(u"Nom")), ("prenom", _(u"Prénom")),
                       ("age", _(u"Âge"))]
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Tri"),
                                                      name="tri",
                                                      liste_choix=liste_choix,
                                                      valeur="nom")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez le tri"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Ordre
        liste_choix = [("croissant", _(u"Croissant")),
                       ("decroissant", _(u"Décroissant"))]
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Ordre"),
                                                      name="ordre",
                                                      liste_choix=liste_choix,
                                                      valeur="croissant")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Sélectionnez l'ordre"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Afficher lignes vierges
        propriete = wxpg.IntProperty(label=_(u"Lignes vierges"),
                                     name="nbre_lignes_vierges",
                                     value=3)
        propriete.SetEditor("SpinCtrl")
        propriete.SetHelpString(
            _(u"Nombre de lignes vierges à afficher en fin de liste"))
        propriete.SetAttribute("obligatoire", True)
        propriete.SetAttribute("Min", 0)
        self.Append(propriete)

        # Afficher tous les inscrits
        propriete = wxpg.BoolProperty(label=_(u"Afficher tous les inscrits"),
                                      name="afficher_inscrits",
                                      value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher tous les inscrits"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Hauteur ligne individu
        liste_choix = [
            ("automatique", _(u"Automatique")),
        ]
        for x in range(5, 205, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Hauteur de la ligne Individu"),
            name="hauteur_ligne_individu",
            liste_choix=liste_choix,
            valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez la hauteur de la ligne de l'individu (en pixels)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur du fond de titre
        propriete = wxpg.ColourProperty(label=_(u"Couleur ligne de titre"),
                                        name="couleur_fond_titre",
                                        value=wx.Colour(208, 208, 208))
        propriete.SetHelpString(
            _(u"Sélectionnez la couleur de fond de la ligne de titre"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur du fond d'entête de colonne
        propriete = wxpg.ColourProperty(label=_(u"Couleur ligne des entêtes"),
                                        name="couleur_fond_entetes",
                                        value=wx.Colour(240, 240, 240))
        propriete.SetHelpString(
            _(u"Sélectionnez la couleur de fond de la ligne des entêtes"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur du fond de total
        propriete = wxpg.ColourProperty(label=_(u"Couleur ligne de total"),
                                        name="couleur_fond_total",
                                        value=wx.Colour(208, 208, 208))
        propriete.SetHelpString(
            _(u"Sélectionnez la couleur de fond de la ligne de total"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Taille nom activité
        propriete = wxpg.IntProperty(
            label=_(u"Taille de police du nom d'activité"),
            name="activite_taille_nom",
            value=5)
        propriete.SetEditor("SpinCtrl")
        propriete.SetHelpString(_(u"Taille de police du nom d'activité"))
        propriete.SetAttribute("obligatoire", True)
        propriete.SetAttribute("Min", 0)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonne Photo")))

        # Afficher les photos
        liste_choix = [("non", _(u"Non")), ("petite", _(u"Petite taille")),
                       ("moyenne", _(u"Moyenne taille")),
                       ("grande", _(u"Grande taille"))]
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Afficher les photos"),
            name="afficher_photos",
            liste_choix=liste_choix,
            valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(_(u"Afficher les photos individuelles"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonne Individu")))

        # Largeur colonne nom
        liste_choix = [
            ("automatique", _(u"Automatique")),
        ]
        for x in range(5, 305, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Largeur de la colonne"),
            name="largeur_colonne_nom",
            liste_choix=liste_choix,
            valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez la largeur de la colonne Nom de l'individu (en pixels)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonne Âge")))

        # Afficher l'âge des individus
        propriete = wxpg.BoolProperty(label=_(u"Afficher la colonne"),
                                      name="afficher_age",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher de la colonne de l'âge des individus"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Largeur colonne âge
        liste_choix = [
            ("automatique", _(u"Automatique")),
        ]
        for x in range(5, 305, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Largeur de la colonne"),
            name="largeur_colonne_age",
            liste_choix=liste_choix,
            valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez la largeur de la colonne Âge de l'individu (en pixels)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonnes des unités")))

        # Afficher les évènements
        propriete = wxpg.BoolProperty(label=_(u"Afficher les évènements"),
                                      name="afficher_evenements",
                                      value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher les évènements"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les étiquettes
        propriete = wxpg.BoolProperty(label=_(u"Afficher les étiquettes"),
                                      name="afficher_etiquettes",
                                      value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher les étiquettes"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Masquer les consommations
        propriete = wxpg.BoolProperty(label=_(u"Masquer les consommations"),
                                      name="masquer_consommations",
                                      value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour masquer les consommations"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Largeur colonne unités
        liste_choix = [
            ("automatique", _(u"Automatique")),
        ]
        for x in range(5, 105, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Largeur de la colonne"),
            name="largeur_colonne_unite",
            liste_choix=liste_choix,
            valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez la largeur de chaque colonne unité (en pixels)")
        )
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonnes personnalisées")))

        # Largeur colonne unités
        liste_choix = []
        for x in range(5, 105, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Largeur par défaut des colonnes"),
            name="largeur_colonne_perso",
            liste_choix=liste_choix,
            valeur="40")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez la largeur par défaut de toutes les colonnes personnalisées (en pixels)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Catégorie
        self.Append(wxpg.PropertyCategory(_(u"Colonne Informations")))

        # Afficher les informations
        propriete = wxpg.BoolProperty(label=_(u"Afficher la colonne"),
                                      name="afficher_informations",
                                      value=True)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher la colonne Informations"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Masquer les informations
        propriete = wxpg.BoolProperty(label=_(u"Masquer les informations"),
                                      name="masquer_informations",
                                      value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour masquer le contenu de la colonne Informations"
              ))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les cotisations manquantes
        propriete = wxpg.BoolProperty(
            label=_(u"Afficher les cotisations manquantes"),
            name="afficher_cotisations_manquantes",
            value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher les cotisations manquantes"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Afficher les pièces manquantes
        propriete = wxpg.BoolProperty(
            label=_(u"Afficher les pièces manquantes"),
            name="afficher_pieces_manquantes",
            value=False)
        propriete.SetHelpString(
            _(u"Cochez cette case pour afficher les pièces manquantes"))
        propriete.SetAttribute("UseCheckbox", True)
        self.Append(propriete)

        # Largeur colonne informations
        liste_choix = [
            ("automatique", _(u"Automatique")),
        ]
        for x in range(5, 505, 5):
            liste_choix.append((str(x), "%d pixels" % x))
        propriete = CTRL_Propertygrid.Propriete_choix(
            label=_(u"Largeur de la colonne"),
            name="largeur_colonne_informations",
            liste_choix=liste_choix,
            valeur="automatique")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez la largeur de la colonne Informations (en pixels)"
              ))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
    def Remplissage(self):
        # --------------------------- TYPE DE DOCUMENT------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Type de document")))

        # Type
        propriete = wxpg.EnumProperty(
            label=_(u"Type"),
            name="type_document",
            labels=[_(u"Détaillé"),
                    _(u"Simplifié"), (u"Totaux")],
            values=[0, 1, 2],
            value=0)
        propriete.SetHelpString(_(u"Sélectionnez un type de document"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- COULEURS DE FOND ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Couleurs de fond")))

        # Couleur 1
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 1"),
                                        name="couleur_fond_1",
                                        value=wx.Colour(204, 204, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # Couleur 2
        propriete = wxpg.ColourProperty(label=_(u"Couleur de fond 2"),
                                        name="couleur_fond_2",
                                        value=wx.Colour(230, 230, 255))
        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- TITRE ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Titre")))

        # Texte
        propriete = wxpg.StringProperty(
            label=_(u"Texte"),
            name="titre_texte",
            value=_(u"Récapitulatif des factures"))
        propriete.SetHelpString(_(u"Saisissez un texte"))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="titre_taille_texte",
                                     value=16)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (16 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("titre_taille_texte", "SpinCtrl")

        # Couleur
        ##        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="titre_couleur", value=wx.BLACK)
        ##        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte"),
            name="titre_alignement",
            labels=labels,
            values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT],
            value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- FAMILLES ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Champs familiaux")))

        liste_choix = [
            ("non", _(u"Non")),
        ]
        for dictQuestion in self.GetGrandParent(
        ).Questionnaires.listeQuestions:
            liste_choix.append(("{QUESTION_%d}" % dictQuestion["IDquestion"],
                                dictQuestion["label"]))

        # Question 1
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 1"),
                                                      name="question_1",
                                                      liste_choix=liste_choix,
                                                      valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez un item du questionnaire famille à inclure dans le document"
              ))
        self.Append(propriete)

        # Question 2
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 2"),
                                                      name="question_2",
                                                      liste_choix=liste_choix,
                                                      valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez un item du questionnaire famille à inclure dans le document"
              ))
        self.Append(propriete)

        # Question 3
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 3"),
                                                      name="question_3",
                                                      liste_choix=liste_choix,
                                                      valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez un item du questionnaire famille à inclure dans le document"
              ))
        self.Append(propriete)

        # --------------------------- INDIVIDUS ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Champs individuels")))

        liste_choix = [
            ("non", _(u"Non")),
            ("ecole_debut_facture",
             _(u"Ecole à la date de début de la facture")),
            ("ecole_fin_facture", _(u"Ecole à la date de fin de la facture")),
            ("classe_debut_facture",
             _(u"Classe à la date de début de la facture")),
            ("classe_fin_facture",
             _(u"Classe à la date de fin de la facture")),
            ("niveau_debut_facture",
             _(u"Niveau scolaire à la date de début de la facture")),
            ("niveau_fin_facture",
             _(u"Niveau scolaire à la date de fin de la facture")),
        ]

        # Champ individuel 1
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 1"),
                                                      name="champ_ind_1",
                                                      liste_choix=liste_choix,
                                                      valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez un champ individuel à intégrer dans le document"
              ))
        self.Append(propriete)

        # Champ individuel 2
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 2"),
                                                      name="champ_ind_2",
                                                      liste_choix=liste_choix,
                                                      valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez un champ individuel à intégrer dans le document"
              ))
        self.Append(propriete)

        # Champ individuel 3
        propriete = CTRL_Propertygrid.Propriete_choix(label=_(u"Champ 3"),
                                                      name="champ_ind_3",
                                                      liste_choix=liste_choix,
                                                      valeur="non")
        propriete.SetEditor("EditeurChoix")
        propriete.SetHelpString(
            _(u"Sélectionnez un champ individuel à intégrer dans le document"
              ))
        self.Append(propriete)

        # --------------------------- INTRODUCTION ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Introduction")))

        # Texte
        propriete = wxpg.StringProperty(label=_(u"Texte"),
                                        name="intro_texte",
                                        value=u"")
        propriete.SetHelpString(_(u"Saisissez un texte"))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="intro_taille_texte",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("intro_taille_texte", "SpinCtrl")

        # Style
        ##        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        ##        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        ##        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="intro_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_NORMAL)
        ##        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Couleur
        ##        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="intro_couleur", value=wx.BLACK)
        ##        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte"),
            name="intro_alignement",
            labels=labels,
            values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT],
            value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)

        # --------------------------- CONCLUSION ------------------------------------------
        self.Append(wxpg.PropertyCategory(_(u"Conclusion")))

        # Texte
        propriete = wxpg.StringProperty(
            label=_(u"Texte"),
            name="conclusion_texte",
            value=_(
                u"{NBRE_FACTURES} factures | Montant total : {TOTAL_FACTURES}")
        )
        propriete.SetHelpString(
            _(u"Saisissez un texte. Vous pouvez utiliser les mots-clés suivants : {NBRE_FACTURES}, {TOTAL_FACTURES}, {NBRE_FACT_PRELEV}, {TOTAL_FACT_PRELEV}"
              ))
        self.Append(propriete)

        # Taille police
        propriete = wxpg.IntProperty(label=_(u"Taille de texte"),
                                     name="conclusion_taille_texte",
                                     value=7)
        propriete.SetHelpString(
            _(u"Saisissez une taille de texte (7 par défaut)"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
        self.SetPropertyEditor("conclusion_taille_texte", "SpinCtrl")

        # Style
        ##        labels = [_(u"Normal"), _(u"Light"), "Gras"]
        ##        valeurs = [wx.FONTWEIGHT_NORMAL, wx.FONTWEIGHT_LIGHT, wx.FONTWEIGHT_BOLD]
        ##        propriete = wxpg.EnumProperty(label=_(u"Style de texte"), name="conclusion_style", labels=labels, values=valeurs, value=wx.FONTWEIGHT_BOLD)
        ##        propriete.SetHelpString(_(u"Sélectionnez un style de texte"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Couleur
        ##        propriete = wxpg.ColourProperty(label=_(u"Couleur de texte"), name="conclusion_couleur", value=wx.BLACK)
        ##        propriete.SetHelpString(_(u"Sélectionnez une couleur"))
        ##        propriete.SetAttribute("obligatoire", True)
        ##        self.Append(propriete)

        # Alignement
        labels = [_(u"Gauche"), _(u"Centre"), _(u"Droite")]
        propriete = wxpg.EnumProperty(
            label=_(u"Alignement du texte"),
            name="conclusion_alignement",
            labels=labels,
            values=[wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_RIGHT],
            value=wx.ALIGN_LEFT)
        propriete.SetHelpString(_(u"Sélectionnez le type d'alignement"))
        propriete.SetAttribute("obligatoire", True)
        self.Append(propriete)
예제 #24
0
    def __init__(self, parent, log):
        # Use the WANTS_CHARS style so the panel doesn't eat the Return key.
        wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS)

        self.log = log
        tID = wx.NewId()

        topsizer = wx.BoxSizer(wx.VERTICAL)

        # Difference between using PropertyGridManager vs PropertyGrid is that
        # the manager supports multiple pages and a description box.
        self.pg = pg = wxpg.PropertyGridManager(
            self,
            style=wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_AUTO_SORT
            | wxpg.PG_TOOLBAR)  # |wxpg.PG_DESCRIPTION
        #self.pg = pg = wxpg.PropertyGrid(self,
        #    style=wxpg.PG_SPLITTER_AUTO_CENTER|wxpg.PG_AUTO_SORT)

        # Show help as tooltips
        pg.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS
                         | wxpg.PG_EX_MULTIPLE_SELECTION)

        pg.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange)
        pg.Bind(wxpg.EVT_PG_PAGE_CHANGED, self.OnPropGridPageChange)
        pg.Bind(wxpg.EVT_PG_SELECTED, self.OnPropGridSelect)
        pg.Bind(wxpg.EVT_PG_RIGHT_CLICK, self.OnPropGridRightClick)

        # Needed by custom image editor
        wx.InitAllImageHandlers()

        #
        # Let's use some simple custom editor
        #
        # NOTE: Editor must be registered *before* adding a property that
        # uses it.
        pg.RegisterEditor(TrivialPropertyEditor)
        pg.RegisterEditor(LargeImageEditor)

        #
        # Add properties
        #

        pg.AddPage("Page 1 - Testing All")

        pg.Append(wxpg.PropertyCategory("1 - Basic Properties"))

        pg.Append(wxpg.StringProperty("String", value="Some Text"))
        pg.Append(wxpg.IntProperty("Int", value=100))
        pg.Append(wxpg.FloatProperty("Float", value=100.0))
        pg.Append(wxpg.BoolProperty("Bool", value=True))
        pg.Append(wxpg.BoolProperty("Bool_with_Checkbox", value=True))
        pg.SetPropertyAttribute("Bool_with_Checkbox", "UseCheckbox", True)

        pg.Append(wxpg.PropertyCategory("2 - More Properties"))
        pg.Append(
            wxpg.LongStringProperty(
                "LongString",
                value=
                "This is a\\nmulti-line string\\nwith\\ttabs\\nmixed\\tin."))
        pg.Append(wxpg.DirProperty("Dir", value="C:\\Windows"))
        pg.Append(wxpg.FileProperty("File", value="C:\\Windows\\system.ini"))
        pg.Append(
            wxpg.ArrayStringProperty("ArrayString", value=['A', 'B', 'C']))

        pg.Append(
            wxpg.EnumProperty(
                "Enum", "Enum",
                ['wxPython Rules', 'wxPython Rocks', 'wxPython Is The Best'],
                [10, 11, 12], 0))
        pg.Append(
            wxpg.EditEnumProperty("EditEnum", "EditEnumProperty",
                                  ['A', 'B', 'C'], [0, 1, 2],
                                  "Text Not in List"))

        pg.Append(wxpg.PropertyCategory("3 - Advanced Properties"))
        pg.Append(wxpg.DateProperty("Date", value=wx.DateTime_Now()))
        pg.Append(wxpg.FontProperty("Font", value=self.GetFont()))
        pg.Append(
            wxpg.ColourProperty("Colour", value=self.GetBackgroundColour()))
        pg.Append(wxpg.SystemColourProperty("SystemColour"))
        pg.Append(wxpg.ImageFileProperty("ImageFile"))
        pg.Append(
            wxpg.MultiChoiceProperty("MultiChoice",
                                     choices=['wxWidgets', 'QT', 'GTK+']))

        pg.Append(wxpg.PropertyCategory("4 - Additional Properties"))
        pg.Append(wxpg.PointProperty("Point", value=self.GetPosition()))
        pg.Append(wxpg.SizeProperty("Size", value=self.GetSize()))
        pg.Append(wxpg.FontDataProperty("FontData"))
        pg.Append(wxpg.IntProperty("IntWithSpin", value=256))
        pg.SetPropertyEditor("IntWithSpin", "SpinCtrl")
        pg.Append(wxpg.DirsProperty("Dirs", value=['C:/Lib', 'C:/Bin']))
        pg.SetPropertyHelpString("String", "String Property help string!")
        pg.SetPropertyHelpString("Dirs", "Dirs Property help string!")

        pg.SetPropertyAttribute("File", wxpg.PG_FILE_SHOW_FULL_PATH, 0)
        pg.SetPropertyAttribute("File", wxpg.PG_FILE_INITIAL_PATH,
                                "C:\\Program Files\\Internet Explorer")
        pg.SetPropertyAttribute("Date", wxpg.PG_DATE_PICKER_STYLE,
                                wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)

        pg.Append(wxpg.PropertyCategory("5 - Custom Properties"))
        pg.Append(IntProperty2("IntProperty2", value=1024))
        pg.Append(
            RectProperty("RectProperty", value=wx.Rect(100, 200, 300, 400)))

        pg.Append(ShapeProperty("ShapeProperty", value=0))
        pg.Append(PyObjectProperty("PyObjectProperty"))

        prop = pg.Append(
            wxpg.StringProperty("StringWithCustomEditor", value="test value"))
        pg.SetPropertyEditor(prop, "TrivialPropertyEditor")

        pg.Append(wxpg.ImageFileProperty("ImageFileWithLargeEditor"))
        pg.SetPropertyEditor("ImageFileWithLargeEditor", "LargeImageEditor")

        # When page is added, it will become the target page for AutoFill
        # calls (and for other property insertion methods as well)
        pg.AddPage("Page 2 - Results of AutoFill will appear here")

        pg.SetPropertyClientData("Point", 1234)
        if pg.GetPropertyClientData("Point") != 1234:
            raise ValueError("Set/GetPropertyClientData() failed")

        # Test setting unicode string
        pg.GetPropertyByName("String").SetValue(u"Some Unicode Text")

        #
        # Test some code that *should* fail (but not crash)
        try:
            a_ = pg.GetPropertyValue("NotARealProperty")
            pg.EnableProperty("NotAtAllRealProperty", False)
            pg.SetPropertyHelpString("AgaintNotARealProperty",
                                     "Dummy Help String")
        except:
            pass
            #raise

        topsizer.Add(pg, 1, wx.EXPAND)

        rowsizer = wx.BoxSizer(wx.HORIZONTAL)
        but = wx.Button(self, -1, "SetPropertyValues")
        but.Bind(wx.EVT_BUTTON, self.OnSetPropertyValues)
        rowsizer.Add(but, 1)
        but = wx.Button(self, -1, "GetPropertyValues")
        but.Bind(wx.EVT_BUTTON, self.OnGetPropertyValues)
        rowsizer.Add(but, 1)
        topsizer.Add(rowsizer, 0, wx.EXPAND)
        rowsizer = wx.BoxSizer(wx.HORIZONTAL)
        but = wx.Button(self, -1, "GetPropertyValues(as_strings=True)")
        but.Bind(wx.EVT_BUTTON, self.OnGetPropertyValues2)
        rowsizer.Add(but, 1)
        but = wx.Button(self, -1, "AutoFill")
        but.Bind(wx.EVT_BUTTON, self.OnAutoFill)
        rowsizer.Add(but, 1)
        topsizer.Add(rowsizer, 0, wx.EXPAND)
        rowsizer = wx.BoxSizer(wx.HORIZONTAL)
        but = wx.Button(self, -1, "Delete")
        but.Bind(wx.EVT_BUTTON, self.OnDeleteProperty)
        rowsizer.Add(but, 1)
        but = wx.Button(self, -1, "Run Tests")
        but.Bind(wx.EVT_BUTTON, self.RunTests)
        rowsizer.Add(but, 1)
        topsizer.Add(rowsizer, 0, wx.EXPAND)

        self.SetSizer(topsizer)
        topsizer.SetSizeHints(self)