예제 #1
0
        private void m_btnSelectChampDynamique_Click(object sender, EventArgs e)
        {
            CInfoStructureDynamique infoStructure = CInfoStructureDynamique.GetStructure(m_typeObjetEdite, 1);
            CInfoChampDynamique     champSel      = CFormSelectChampParentPourStructure.SelectPropriete(infoStructure);

            if (champSel != null)
            {
                m_colonneAffichee.InfoChampDynamique = champSel;
                m_labelChamp.Text = champSel == null ? "" : champSel.NomChamp;
            }

            /*Rectangle rect = m_panelComboChamp.RectangleToScreen(new Rectangle(0, m_panelComboChamp.Height, m_panelComboChamp.Width, 230));
             * bool bCancel = false;
             * CDefinitionProprieteDynamique champ = CFormSelectChampPopup.SelectDefinitionChamp(
             *  rect,
             *  m_typeObjetEdite,
             *  new CFournisseurProprietesForFiltreDynamique(),
             *  ref bCancel,
             *  null,
             *  null);
             * if (!bCancel)
             * {
             *  m_colonneAffichee.InfoChampDynamique = champ;
             *  m_labelChamp.Text = champ == null ? "[NOT DEFINED]" : champ.Nom;
             * }*/
        }
예제 #2
0
        //-------------------------------------------------------------------------
        private void FillListeChamps(CRestrictionUtilisateurSurType restriction)
        {
            m_wndListeChamps.BeginUpdate();
            m_wndListeChamps.Items.Clear();
            CInfoStructureDynamique info     = CInfoStructureDynamique.GetStructure(restriction.TypeAssocie, 0);
            List <ListViewItem>     lstItems = new List <ListViewItem>();

            foreach (CInfoChampDynamique champ in info.Champs)
            {
                string strTmp = "";
                CDefinitionProprieteDynamique def = CConvertisseurInfoStructureDynamiqueToDefinitionChamp.GetDefinitionProprieteDynamique(champ.NomPropriete, ref strTmp);
                //Uniquement les propriétés "classiques"
                //voir CTimosApp.GetStructure
                if (def != null && typeof(CDefinitionProprieteDynamiqueDotNet).IsAssignableFrom(def.GetType()))
                {
                    ListViewItem item = new ListViewItem();
                    item.Text       = champ.NomChamp;
                    item.Tag        = def.NomProprieteSansCleTypeChamp;
                    item.ImageIndex = GetIndexImage(restriction.GetRestriction(def.NomProprieteSansCleTypeChamp));
                    lstItems.Add(item);
                }
            }
            lstItems.Sort((x, y) => x.Text.CompareTo(y.Text));
            if (typeof(IElementAChamps).IsAssignableFrom(restriction.TypeAssocie))
            {
                CRoleChampCustom role = CRoleChampCustom.GetRoleForType(restriction.TypeAssocie);
                if (role != null)
                {
                    CListeObjetsDonnees listeChampsCustom = CChampCustom.GetListeChampsForRole(CContexteDonneeSysteme.GetInstance(), role.CodeRole);
                    foreach (CChampCustom champ in listeChampsCustom)
                    {
                        ListViewItem item = new ListViewItem();
                        item.Text       = champ.Nom;
                        item.Tag        = champ.CleRestriction;
                        item.ImageIndex = GetIndexImage(restriction.GetRestriction(champ.CleRestriction));
                        lstItems.Add(item);
                    }
                    lstItems.Sort((x, y) => x.Text.CompareTo(y.Text));

                    CListeObjetsDonnees listeFormulaires = new CListeObjetsDonnees(CContexteDonneeSysteme.GetInstance(), typeof(CFormulaire));
                    listeFormulaires.Filtre = CFormulaire.GetFiltreFormulairesForRole(role.CodeRole);
                    foreach (CFormulaire formulaire in listeFormulaires)
                    {
                        ListViewItem item = new ListViewItem();
                        item.Text       = "{" + formulaire.Libelle + "}";
                        item.Tag        = formulaire.CleRestriction;
                        item.ImageIndex = GetIndexImage(restriction.GetRestriction(formulaire.CleRestriction));
                        lstItems.Add(item);
                    }
                }
            }
            m_wndListeChamps.Items.AddRange(lstItems.ToArray());
            m_wndListeChamps.EndUpdate();
        }
 //-----------------------------------------------------------------------
 private void m_arbre_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
 {
     if (e.Node.Nodes.Count == 1 &&
         e.Node.Nodes[0].Text == "*")
     {
         CInfoChampDynamique def = (CInfoChampDynamique)e.Node.Tag;
         if (def == null)
         {
             return;
         }
         e.Node.Nodes.Clear();
         CInfoChampDynamique infoParente = null;
         if (e.Node.Tag is CInfoChampDynamique)
         {
             infoParente = (CInfoChampDynamique)e.Node.Tag;
         }
         CInfoStructureDynamique newStruct = CInfoStructureDynamique.GetStructure(def.TypeDonnee, 1);
         FillTree(newStruct, e.Node.Nodes, infoParente);
     }
 }
예제 #4
0
        //-------------------------------------------------------------------
        private void ContexMenuPopUp(object sender, EventArgs e)
        {
            if (!m_bEnableCustomisationUser)
            {
                return;
            }

            if (m_structureObjets == null && Items.Count > 0)
            {
                m_structureObjets = CInfoStructureDynamique.GetStructure(Items[0].Tag.GetType(), 1);
            }
            if (m_structureObjets == null)
            {
                return;
            }

            //Crée une Hashtable des colonnes affichées
            Hashtable tableColonnes = new Hashtable();

            foreach (ListViewAutoFilledColumn col in Colonnes)
            {
                tableColonnes[col.Field] = col;
            }

            bool bNouveauMenu = ContextMenu.MenuItems.Count == 0;

            if (bNouveauMenu)
            {
                FillMenu(ContextMenu, m_structureObjets, tableColonnes, "");
                MenuItem item = new MenuItem("Plus de champs", new EventHandler(OnSelectionnerLesChamps));
                ContextMenu.MenuItems.Add(item);
            }
            UpdateCheckState(ContextMenu, tableColonnes);
            Point pt = Cursor.Position;

            if (e is MouseEventArgs)
            {
                pt = new Point(((MouseEventArgs)e).X, ((MouseEventArgs)e).Y);
            }
            //m_popupMenu.Show ( this, pt );
        }