Exemple #1
0
 //-----------------------------------------------------------------
 public override void OnMouseUpNonStandard(object sender, MouseEventArgs e)
 {
     if (ModeSourisCustom == EModeSourisCustom.Join && e.Button == MouseButtons.Left)
     {
         Point     ptLogique = GetLogicalPointFromDisplay(new Point(e.X, e.Y));
         CODEQBase table     = ObjetEdite.SelectionnerElementDuDessus(ptLogique) as CODEQBase;
         if (table != null && table != m_table1Join)
         {
             IColumnDeEasyQuery colEndJoin = table.GetColonneAt(ptLogique);
             if (colEndJoin != null)
             {
                 CODEQJointure jointure = new CODEQJointure();
                 jointure.Parent         = ObjetEdite;
                 jointure.ElementsSource = new IObjetDeEasyQuery[] { m_table1Join, table };
                 jointure.NomFinal       = m_table1Join.NomFinal + "-" + table.NomFinal;
                 if (jointure.AddParametre(m_colStartJoin, colEndJoin))
                 {
                     Rectangle rct = Rectangle.Union(m_table1Join.RectangleAbsolu, table.RectangleAbsolu);
                     rct.Offset(rct.Width / 2 - jointure.Size.Width / 2, rct.Height / 2 - jointure.Size.Height / 2);
                     jointure.Position = new Point(rct.Left, rct.Top);
                     ObjetEdite.AddChild(jointure);
                     ModeSouris = EModeSouris.Selection;
                 }
             }
         }
         m_colStartJoin = null;
         m_table1Join   = null;
         Refresh();
     }
 }
        //------------------------------------------
        public void FillFromTable(CODEQBase objetDeRequete)
        {
            CEasyQuery query = objetDeRequete.Query;

            if (query == null)
            {
                return;
            }
            IdObjetDeQuerySource = objetDeRequete.Id;
            HashSet <string> champsASupprimer = new HashSet <string>();

            foreach (IChampEntiteSNMP champ in Champs.ToArray())
            {
                if (champ is CChampEntiteSnmpStandard)
                {
                    champsASupprimer.Add(champ.Id);
                }
            }
            foreach (IColumnDeEasyQuery col in objetDeRequete.Columns)
            {
                CChampEntiteFromQuery champ = Champs.FirstOrDefault(c =>
                                                                    c is CChampEntiteFromQuery && ((CChampEntiteFromQuery)c).ColonneSource.Id == col.Id) as CChampEntiteFromQuery;
                if (champ == null)
                {
                    champ = new CChampEntiteFromQuery();
                    ChampsListe.Add(champ);
                }
                champ.InitFromColonneSource(col, objetDeRequete);
            }
        }
Exemple #3
0
        public void InitFromColonneSource(IColumnDeEasyQuery colonne, CODEQBase objetDeQuery)
        {
            m_colonneSource = colonne;

            CEasyQuery query = objetDeQuery.Query;

            if (query != null)
            {
                //cherche la source
                ITableDefinition  tableDef = null;
                IColumnDefinition colDef   = null;
                IsReadOnly  = true;
                Description = "";
                if (query.FindSource(colonne, objetDeQuery, out tableDef, out colDef))
                {
                    CColumnDefinitionSNMP colSnmp = colDef as CColumnDefinitionSNMP;
                    if (colSnmp != null)
                    {
                        if (tableDef is CTableDefinitionSNMP ||
                            tableDef is CTableDefinitionSnmpOfScalar)
                        {
                            Description = colSnmp.Description;
                            IsReadOnly  = colSnmp.IsReadOnly;
                        }
                    }
                }
            }
        }
Exemple #4
0
 //-------------------------------------------------------
 public override void Draw(CContextDessinObjetGraphique ctx)
 {
     base.Draw(ctx);
     if (SourceEntites is CSourceEntitesPourTableDataChampDeTable)
     {
         string            strIdTable  = ((CSourceEntitesPourTableDataChampDeTable)SourceEntites).IdTable;
         IObjetDeEasyQuery tableSource = null;
         foreach (IObjetDeEasyQuery objet in Query.Childs)
         {
             CODEQBase o = objet as CODEQBase;
             if (o != null && o.Id == strIdTable)
             {
                 tableSource = o;
                 break;
             }
         }
         if (tableSource != null)
         {
             Pen           pen  = new Pen(Brushes.Black, 2);
             CLienTracable lien = CTraceurLienDroit.GetLienPourLier(tableSource.RectangleAbsolu, RectangleAbsolu, EModeSortieLien.Automatic);
             lien.RendVisibleAvecLesAutres(ctx.Liens);
             ctx.AddLien(lien);
             pen.DashStyle = DashStyle.Dot;
             AdjustableArrowCap cap = new AdjustableArrowCap(4, 4, true);
             pen.CustomEndCap = cap;
             lien.Draw(ctx.Graphic, pen);
             pen.Dispose();
             cap.Dispose();
         }
     }
 }
Exemple #5
0
        //------------------------------------------------------------------------
        public void Init(CODEQBase odeqBase)
        {
            m_odeqTable  = odeqBase;
            m_postFilter = m_odeqTable != null ? m_odeqTable.PostFilter : null;
            CDefPostFilter def = m_postFilter != null?CAllocateurPostFilter.GetDef(m_postFilter.GetType()) : c_defNull;

            m_cmbTypePostFilter.SelectedItem = def;
            UpdatePanelPostFilter();
        }
        //-------------------------------------------------------------------
        private void UpdateLabelSource()
        {
            CODEQBase objet = GetObjetDeQuerySource();

            if (objet != null && objet.Query != null)
            {
                m_lblRequeteSource.Text = objet.Query.Libelle + " (" + objet.NomFinal + ")";
            }
        }
Exemple #7
0
        //--------------------------------------------------------------------------------------
        public void Init(CODEQBase odeqBase, IPostFilter postFilter)
        {
            CPostFilterFromQueryTable postFromQuery = postFilter as CPostFilterFromQueryTable;

            if (postFromQuery == null)
            {
                postFromQuery = new CPostFilterFromQueryTable();
            }
            Init(odeqBase, postFromQuery, odeqBase.Query);
        }
Exemple #8
0
 //-----------------------------------------------------------------
 private void m_menuCommentaires_Click(object sender, EventArgs e)
 {
     if (Selection.Count == 1)
     {
         CODEQBase ob = Selection[0] as CODEQBase;
         if (ob != null)
         {
             ob.Commentaires = CFormCommentaires.GetTexte(ob.Commentaires);
         }
     }
 }
        //-------------------------------------------------------------------
        void menuDeRequete_Click(object sender, EventArgs e)
        {
            CMenuTableDeRequete menu = sender as CMenuTableDeRequete;

            if (menu != null)
            {
                CODEQBase objet = menu.ObjetDeQuery;
                m_typeEntite.FillFromTable(objet);
                UpdateLabelSource();
                FillListeChamps();
            }
        }
        //------------------------------------------------------------------------------
        private void m_lnkEditSourceQuery_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            string strId = m_typeEntite.IdObjetDeQuerySource;

            if (strId != "")
            {
                CODEQBase objet = GetObjetDeQuerySource();
                if (objet != null && objet.Query != null)
                {
                    CFormEditEasyQuery.EditeQuery(objet.Query);
                }
            }
        }
Exemple #11
0
 //-----------------------------------------------------------------
 private void m_menuExpandTable_Click(object sender, EventArgs e)
 {
     foreach (IObjetDeEasyQuery objet in Selection)
     {
         CODEQBase o = objet as CODEQBase;
         if (o != null)
         {
             o.IsExpanded = m_menuExpandTable.CheckState == CheckState.Unchecked;
         }
         ;
     }
     Refresh();
 }
Exemple #12
0
        //-----------------------------------------------------------------
        public override void OnMouseMoveNonStandard(object sender, MouseEventArgs e)
        {
            if (ModeSourisCustom == EModeSourisCustom.Join && m_colStartJoin != null && e.Button == MouseButtons.Left)
            {
                Graphics g = CreateGraphics();

                Point ptCentre = new Point(m_rectColStartJoin.Left + m_rectColStartJoin.Width / 2,
                                           m_rectColStartJoin.Top + m_rectColStartJoin.Height / 2);
                Rectangle rct = m_rectJoin;

                Point ptLogique            = GetLogicalPointFromDisplay(new Point(e.X, e.Y));
                IColumnDeEasyQuery colDest = null;
                CODEQBase          dest    = ObjetEdite.SelectionnerElementDuDessus(ptLogique) as CODEQBase;
                if (dest == m_table1Join)
                {
                    dest = null;
                }
                colDest = dest != null?dest.GetColonneAt(ptLogique) : null;

                Rectangle rctDest = new Rectangle(e.X, e.Y, 1, 1);
                if (colDest != null)
                {
                    rctDest = dest.GetRectAbsoluColonne(colDest);
                    rctDest = new Rectangle(GetDisplayPointFromLogical(rctDest.Location),
                                            GetDisplaySizeFromLogical(rctDest.Size));
                }

                rct.Inflate(2, 2);
                using (Bitmap bmp = DernierApercuToDispose)
                    g.DrawImage(bmp, rct, rct, GraphicsUnit.Pixel);
                Pen pen = new Pen(Color.Blue);
                pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
                Brush br = new SolidBrush(Color.FromArgb(128, 0, 0, 255));
                g.FillRectangle(br, m_rectColStartJoin);
                if (colDest != null)
                {
                    g.FillRectangle(br, rctDest);
                }
                br.Dispose();
                g.DrawLine(pen, ptCentre, new Point(e.X, e.Y));
                pen.Dispose();
                g.Dispose();
                m_rectJoin = Rectangle.Union(m_rectColStartJoin, rctDest);
            }
        }
Exemple #13
0
 public override void OnMouseDownNonStandard(object sender, MouseEventArgs e)
 {
     m_colStartJoin = null;
     if (ModeSourisCustom == EModeSourisCustom.Join && e.Button == MouseButtons.Left)
     {
         Point ptLogique = GetLogicalPointFromDisplay(new Point(e.X, e.Y));
         m_table1Join = ObjetEdite.SelectionnerElementDuDessus(ptLogique) as CODEQBase;
         if (m_table1Join != null)
         {
             m_colStartJoin = m_table1Join.GetColonneAt(ptLogique);
             if (m_colStartJoin != null)
             {
                 Rectangle rctCol = m_table1Join.GetRectAbsoluColonne(m_colStartJoin);
                 rctCol = new Rectangle(GetDisplayPointFromLogical(rctCol.Location),
                                        GetDisplaySizeFromLogical(rctCol.Size));
                 m_rectColStartJoin = rctCol;
                 m_rectJoin         = m_rectColStartJoin;
             }
         }
     }
 }
        //--------------------------------------------------------------------
        private void UpdateColonnes()
        {
            m_panelChamp.Visible = false;
            string strId = m_cmbTable.SelectedValue as string;

            if (strId != null && strId.Length > 0)
            {
                foreach (IObjetDeEasyQuery obj in m_tableFromHotel.Query.Childs)
                {
                    CODEQBase table = obj as CODEQBase;
                    if (table != null && table.Id == strId)
                    {
                        m_panelChamp.Visible       = true;
                        m_cmbColonne.DataSource    = table.Columns;
                        m_cmbColonne.DisplayMember = "ColumnName";
                        m_cmbColonne.ValueMember   = "Id";
                        m_cmbColonne.SelectedValue = m_source.IdColonne;
                    }
                }
            }
        }
        //------------------------------------------------------
        public IEnumerable <string> GetListeIdsEntites(CEasyQuery query)
        {
            HashSet <string> lst = new HashSet <string>();

            if (query != null)
            {
                CODEQBase          table  = query.GetObjet(m_strIdTable) as CODEQBase;
                IColumnDeEasyQuery colSel = null;
                if (table != null)
                {
                    foreach (IColumnDeEasyQuery col in table.Columns)
                    {
                        if (col.Id == m_strIdColonne)
                        {
                            colSel = col;
                        }
                    }
                }
                if (colSel != null)
                {
                    CResultAErreur result = table.GetDatas(new CListeQuerySource(query.Sources));
                    if (result && result.Data is DataTable)
                    {
                        DataTable tableRes = result.Data as DataTable;
                        if (tableRes.Columns[colSel.ColumnName] != null)
                        {
                            foreach (DataRow row in tableRes.Rows)
                            {
                                object val = row[colSel.ColumnName];
                                if (val != DBNull.Value && val != null)
                                {
                                    lst.Add(val.ToString());
                                }
                            }
                        }
                    }
                }
            }
            return(lst);
        }
        //-------------------------------------------------------------------

        private void AssureMenuFromRequete()
        {
            if (m_menuFromRequete.Items.Count != 0)
            {
                return;
            }
            foreach (CEasyQuery query in m_typeAgent.Queries)
            {
                ToolStripMenuItem item = new ToolStripMenuItem(query.Libelle);
                foreach (I2iObjetGraphique objet in query.Childs)
                {
                    CODEQBase objDeQuery = objet as CODEQBase;
                    if (objDeQuery != null)
                    {
                        CMenuTableDeRequete menu = new CMenuTableDeRequete(objDeQuery);
                        item.DropDownItems.Add(menu);
                        menu.Click += new EventHandler(menuDeRequete_Click);
                    }
                }
                m_menuFromRequete.Items.Add(item);
            }
        }
        //---------------------------------------------------------------------
        public void Init(ISourceEntitesPourTableDataHotel source, CODEQTableFromDataHotel table)
        {
            m_source         = source as CSourceEntitesPourTableDataChampDeTable;
            m_tableFromHotel = table;
            if (m_source == null)
            {
                m_source = new CSourceEntitesPourTableDataChampDeTable();
            }
            List <CODEQBase> lstTables = new List <CODEQBase>();

            foreach (IObjetDeEasyQuery obj in table.Query.Childs)
            {
                CODEQBase t = obj as CODEQBase;
                if (t != null)
                {
                    lstTables.Add(t);
                }
            }
            m_cmbTable.DataSource    = lstTables;
            m_cmbTable.DisplayMember = "NomFinal";
            m_cmbTable.ValueMember   = "Id";
            m_cmbTable.SelectedValue = m_source.IdTable;
            UpdateColonnes();
        }
 public CMenuTableDeRequete(CODEQBase objet)
     : base(objet.NomFinal)
 {
     ObjetDeQuery = objet;
 }
        //-------------------------------------
        public CResultAErreur FillFromSNMP(CInterrogateurSnmp agent)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                agent.Connexion.Version  = SnmpVersion;
                agent.ConnexionIp        = Ip;
                agent.ConnexionPort      = SnmpPort;
                agent.ConnexionCommunity = Communaute;
                CEasyQuerySource source = new CEasyQuerySource();
                source.Connexion = new CSnmpConnexionForEasyQuery(agent);
                if (TypeAgent != null)
                {
                    foreach (CTypeEntiteSnmpPourSupervision typeEntite in TypeAgent.TypesEntites)
                    {
                        //Repere tous les existants
                        Dictionary <string, CEntiteSnmpPourSupervision> dicEntites = new Dictionary <string, CEntiteSnmpPourSupervision>();
                        foreach (CEntiteSnmpPourSupervision entite in GetEntites(typeEntite))
                        {
                            string strIndex = entite.Index;
                            if (strIndex != null)
                            {
                                dicEntites[strIndex] = entite;
                            }
                        }
                        //récupère les données de la table
                        CODEQBase objetDeQuery = typeEntite.GetObjetDeQuery(TypeAgent);
                        if (objetDeQuery != null)
                        {
                            CEasyQueryFromEasyQueryASourcesSpecifique query = new CEasyQueryFromEasyQueryASourcesSpecifique(objetDeQuery.Query, source);
                            DataTable table = query.GetTable(objetDeQuery.NomFinal);
                            if (table != null)
                            {
                                foreach (DataRow row in table.Rows)
                                {
                                    CEntiteSnmpPourSupervision entite = new CEntiteSnmpPourSupervision(Database);
                                    entite.CreateNew();
                                    entite.AgentSnmp  = this;
                                    entite.TypeEntite = typeEntite;
                                    entite.FillFromSource(row);
                                    entite.UpdateIndexEtLibelle();
                                    string strIndex = entite.Index;
                                    //Si l'entité existe déjà
                                    CEntiteSnmpPourSupervision oldEntite = Entites.FirstOrDefault(
                                        e => e.Index == strIndex &&
                                        e.TypeEntite.Id == typeEntite.Id &&
                                        e.Id != entite.Id);
                                    if (oldEntite != null)
                                    {
                                        oldEntite.FillFromSource(row);
                                        entite.Delete();
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
Exemple #20
0
 //--------------------------------------------------
 public static void Autoexec()
 {
     CODEQBase.RegisterTypeDerivePossible(typeof(IODEQTableFromFramework), typeof(CODEQTableFilleFromFramework));
 }
Exemple #21
0
        //-----------------------------------------------------------------
        protected override void AfficherMenuAdditonnel(System.Windows.Forms.ContextMenuStrip menu)
        {
            base.AfficherMenuAdditonnel(menu);
            //Ajoute les menus
            foreach (ToolStripItem item in new ArrayList(m_menuActionsSurTables.Items))
            {
                menu.Items.Add(item);
            }

            m_menuProperties.Visible = Selection.Count == 1 && CanEditeProprietes(Selection[0]);

            //Menu add
            m_menuAddSousElement.DropDownItems.Clear();
            if (Selection.Count >= 1)
            {
                CheckState?            expandedState = null;
                Dictionary <Type, int> lstType       = new Dictionary <Type, int>();
                foreach (I2iObjetGraphique obj in Selection)
                {
                    CODEQBase objet = obj as CODEQBase;
                    if (objet != null)
                    {
                        if (expandedState == null)
                        {
                            if (objet.IsExpanded)
                            {
                                expandedState = CheckState.Checked;
                            }
                            else
                            {
                                expandedState = CheckState.Unchecked;
                            }
                        }
                        else
                        {
                            if (expandedState.Value == CheckState.Checked && !objet.IsExpanded ||
                                expandedState.Value == CheckState.Unchecked && objet.IsExpanded)
                            {
                                expandedState = CheckState.Indeterminate;
                            }
                        }
                        foreach (Type tp in objet.TypesDerivesPossibles)
                        {
                            int nNb = 0;
                            if (lstType.ContainsKey(tp))
                            {
                                nNb = lstType[tp];
                            }
                            nNb++;
                            lstType[tp] = nNb;
                        }
                    }
                }
                m_menuExpandTable.CheckState = expandedState != null ? expandedState.Value : CheckState.Unchecked;
                foreach (KeyValuePair <Type, int> kv in lstType)
                {
                    if (kv.Value == Selection.Count)
                    {
                        CODEQFromObjetsSource sousElement = Activator.CreateInstance(kv.Key) as CODEQFromObjetsSource;
                        if (sousElement != null && sousElement.NbSourceRequired == Selection.Count)
                        {
                            CMenuAddSousElement subMenu = new CMenuAddSousElement(sousElement);
                            subMenu.Click += new EventHandler(menuAddSousElement_Click);
                            m_menuAddSousElement.DropDownItems.Add(subMenu);
                        }
                    }
                }
            }
            m_menuAddSousElement.Visible = m_menuAddSousElement.DropDownItems.Count != 0;

            //Menu RemplaceSource
            m_menuRemplaceSource.DropDownItems.Clear();
            if (Selection.Count == 1)
            {
                CODEQFromObjetsSource tableFromSource = Selection[0] as CODEQFromObjetsSource;
                if (tableFromSource == null)
                {
                    m_menuRemplaceSource.Visible = false;
                }
                else
                {
                    m_menuRemplaceSource.Visible = true;
                    IEnumerable <string> nomsParametres = tableFromSource.NomsSources;
                    IObjetDeEasyQuery[]  sources        = tableFromSource.ElementsSource;
                    for (int n = 0; n < tableFromSource.NbSourceRequired; n++)
                    {
                        ToolStripMenuItem itemSource = new ToolStripMenuItem();
                        string            strText    = n < nomsParametres.Count() ? nomsParametres.ElementAt(n) : (n + 1).ToString();
                        if (sources.Length > n)
                        {
                            strText += " (" + sources[n].NomFinal + ")";
                        }
                        itemSource.Text = strText;
                        itemSource.Tag  = n;
                        itemSource.DropDownItems.Add(new ToolStripMenuItem(""));
                        itemSource.DropDownOpening += itemSource_DropDownOpening;
                        m_menuRemplaceSource.DropDownItems.Add(itemSource);
                    }
                }
            }
        }