예제 #1
0
 public static void ClearTemp()
 {
     foreach (string fn in Directory.GetFiles(TempDirectory))
     {
         try { File.Delete(fn); }
         catch { m_usedTempNames.Add(Path.GetFileName(fn).ToLower()); }
     }
 }
예제 #2
0
        //public override bool AllowDragDrop(ITreeNode draggingNode)
        //{
        //    //if (!RealNode.TreeBehaviour.AllowDragDrop) return false;
        //    if (draggingNode is IDatabaseTreeNode) return true;
        //    return false;
        //}

        protected override void DoGetChildren()
        {
            List <ITreeNode> res = new List <ITreeNode>();

            var dbs = new HashSetEx <string>();

            foreach (string name in m_conn.Databases)
            {
                res.Add(new Database_SourceTreeNode(m_conn.GetDatabase(name), this, name, true));
                if (name == null)
                {
                    continue;
                }
                dbs.Add(name.ToLower());
            }
            string dbsdir = Parent.GetPrivateSubFolder("databases");

            if (Directory.Exists(dbsdir))
            {
                foreach (string subdir in Directory.GetDirectories(dbsdir))
                {
                    string dbname = System.IO.Path.GetFileName(subdir);
                    if (dbs.Contains(dbname.ToLower()))
                    {
                        continue;
                    }
                    var db = new PhantomDatabaseSource(m_conn, subdir);
                    res.Add(new Database_SourceTreeNode(db, this, dbname, true));
                }
            }
            res.SortByKey(n => n.Title);
            m_children = res.ToArray();
        }
예제 #3
0
        public IEnumerable <string> GetFiles()
        {
            var    files  = new HashSetEx <string>();
            string libdir = GetLibDirectory();

            if (Directory.Exists(libdir))
            {
                foreach (string fn in Directory.GetFiles(libdir, "*" + FileExtension))
                {
                    string ofn = Path.Combine(GetDirectory(), Path.GetFileName(fn));
                    if (File.Exists(ofn))
                    {
                        files.Add(IOTool.NormalizePath(ofn));
                        yield return(ofn);
                    }
                    else
                    {
                        yield return(fn);
                    }
                }
            }
            foreach (string fn in Directory.GetFiles(GetDirectory(), "*" + FileExtension))
            {
                if (files.Contains(IOTool.NormalizePath(fn)))
                {
                    continue;
                }
                yield return(fn);
            }
        }
예제 #4
0
        private static void _AddFile(string path, HashSetEx <string> deleted, string indexFile)
        {
            var files = new HashSetEx <string>(IOTool.LoadLines(indexFile));

            files.Add(path);
            IOTool.SaveLines(indexFile, files);
            deleted.Add(path.ToLower());
        }
예제 #5
0
 public void SetMultiSymbolOperators(IEnumerable <string> operators)
 {
     m_multiSymbolOperators = new List <string>(operators);
     foreach (var op in operators)
     {
         foreach (var c in op)
         {
             m_symbols.Add(c);
         }
     }
 }
예제 #6
0
        public static void DeleteRowsWithSelectedCells(this DataGridView grid)
        {
            var rows = new HashSetEx <int>();

            foreach (DataGridViewCell cell in grid.SelectedCells)
            {
                rows.Add(cell.RowIndex);
            }
            var irows = new List <int>(rows);

            irows.Sort();
            irows.Reverse();
            foreach (int rowindex in irows)
            {
                grid.Rows.RemoveAt(rowindex);
            }
        }
예제 #7
0
 public License(XmlElement xml, string filename)
 {
     ActiveTo          = ReadValidity(xml, "ActiveTo");
     SupportTo         = ReadValidity(xml, "SupportTo");
     UpdatesTo         = ReadValidity(xml, "UpdatesTo");
     HidePurchaseLinks = xml.GetAttribute("hidepurchaselinks") == "1";
     Name       = xml.GetAttribute("name");
     Text       = xml.GetAttribute("text");
     LongText   = xml.GetAttribute("longtext");
     UserName   = xml.GetTextContent("Name");
     UserEmail  = xml.GetTextContent("Email");
     Identifier = xml.GetAttribute("licid");
     Hides      = new List <string>(xml.GetAttribute("hides").Split(','));
     foreach (XmlElement x in xml.SelectNodes("Feature"))
     {
         Features.Add(x.GetAttribute("name"));
     }
     Filename  = filename;
     SourceXml = xml;
 }
예제 #8
0
 private static void _Initialize(string indexFile, HashSetEx <string> files)
 {
     foreach (string line in IOTool.LoadLines(indexFile))
     {
         try
         {
             if (File.Exists(line))
             {
                 File.Delete(line);
             }
             if (Directory.Exists(line))
             {
                 Directory.Delete(line, true);
             }
         }
         catch
         {
             files.Add(line.ToLower());
         }
     }
     IOTool.SaveLines(indexFile, files);
 }
예제 #9
0
        private void InitOperatorTable()
        {
            m_operatorTable = GetOperatorTable();
            for (int i = 1; i < m_operatorTable.Length; i++)
            {
                m_operatorTable[i - 1].HigherPriority = m_operatorTable[i];
            }
            HashSetEx <string> ops = new HashSetEx <string>();

            foreach (var g in m_operatorTable)
            {
                foreach (var op in g.EnumOperators())
                {
                    if (op.IsSymbol)
                    {
                        foreach (var sym in op.Tokens)
                        {
                            ops.Add(sym);
                        }
                    }
                }
            }
            m_tokenizer.SetMultiSymbolOperators(ops);
        }
예제 #10
0
        protected virtual HashSetEx <string> LoadNoContextReservedWords()
        {
            var res = new HashSetEx <string>();

            res.Add("SELECT"); res.Add("CREATE"); res.Add("UPDATE"); res.Add("DELETE");
            res.Add("DROP"); res.Add("ALTER"); res.Add("TABLE"); res.Add("VIEW");
            res.Add("FROM"); res.Add("WHERE"); res.Add("GROUP"); res.Add("ORDER"); res.Add("BY");
            res.Add("ASC"); res.Add("DESC"); res.Add("HAVING"); res.Add("INTO"); res.Add("ASC");
            res.Add("LEFT"); res.Add("RIGHT"); res.Add("INNER"); res.Add("OUTER");
            res.Add("CROSS"); res.Add("NATURAL"); res.Add("JOIN"); res.Add("ON");
            res.Add("DISTINCT"); res.Add("ALL"); res.Add("ANY");
            return(res);
        }
예제 #11
0
 public void CheckColumn(string colname)
 {
     m_checkedColumns.Add(colname);
     panCols.Invalidate();
 }
예제 #12
0
        /// <summary>
        /// adds primary key information to query definition, or marks columns as read only, of no PK is available
        /// </summary>
        /// <param name="handler">used for obtain table structures with PKs</param>
        public void CompleteUpdatingInfo(IDmlfHandler handler)
        {
            var pks          = new Dictionary <DmlfSource, IPrimaryKey>();
            var required_pks = new Dictionary <DmlfSource, IPrimaryKey>();
            // list of columns
            var usedcols = new HashSetEx <DmlfColumnRef>();

            foreach (var col in Columns)
            {
                var di = col.DisplayInfo;
                if (di == null)
                {
                    continue;
                }
                var tbl = col.Source;
                if (tbl == null)
                {
                    tbl = handler.BaseTable;
                }
                if (tbl == null)
                {
                    continue;
                }
                var cr = col.Expr as DmlfColumnRefExpression;
                if (cr == null)
                {
                    di.IsReadOnly = true;
                    continue;
                }
                if (!pks.ContainsKey(tbl))
                {
                    pks[tbl] = null;
                    if (handler != null)
                    {
                        var ts = handler.GetStructure(tbl.TableOrView);
                        if (ts != null)
                        {
                            pks[tbl] = ts.FindConstraint <IPrimaryKey>();
                        }
                    }
                }
                var pk = pks[tbl];
                if (pk == null)
                {
                    // no primary key, is readonly
                    di.IsReadOnly = true;
                    continue;
                }
                var pkcols = new List <string>(pk.Columns.GetNames());
                if (pkcols.Contains(cr.Column.ColumnName))
                {
                    di.IsPrimaryKey = true;
                }
                usedcols.Add(new DmlfColumnRef {
                    Source = tbl, ColumnName = cr.Column.ColumnName
                });
                if (di.Style == ColumnDisplayInfo.UsageStyle.Value)
                {
                    required_pks[tbl] = pk;
                }
                if (di.Style == ColumnDisplayInfo.UsageStyle.Lookup)
                {
                    di.IsReadOnly = true;
                }
            }

            // add missing primary key columns as hidden columns
            foreach (var pkt in required_pks)
            {
                foreach (string col in pkt.Value.Columns.GetNames())
                {
                    var key = new DmlfColumnRef {
                        Source = pkt.Key, ColumnName = col
                    };
                    if (usedcols.Contains(key))
                    {
                        continue;
                    }
                    usedcols.Add(key);
                    var nc = new DmlfResultField
                    {
                        DisplayInfo = new ColumnDisplayInfo
                        {
                            IsPrimaryKey = true,
                            Style        = ColumnDisplayInfo.UsageStyle.Hidden,
                        },
                        Expr = new DmlfColumnRefExpression
                        {
                            Column = new DmlfColumnRef
                            {
                                Source     = pkt.Key,
                                ColumnName = col,
                            }
                        }
                    };
                    Columns.Add(nc);
                }
            }
        }