protected void OnButtonLoadImageClicked(object sender, EventArgs e) { FileChooserDialog Chooser = new FileChooserDialog("Выберите svg для загрузки...", this, FileChooserAction.Open, "Отмена", ResponseType.Cancel, "Загрузить", ResponseType.Accept ); FileFilter Filter = new FileFilter(); Filter.Name = "SVG изображение"; Filter.AddMimeType("image/svg+xml"); Filter.AddPattern("*.svg"); Chooser.AddFilter(Filter); Filter = new FileFilter(); Filter.Name = "Все файлы"; Filter.AddPattern("*.*"); Chooser.AddFilter(Filter); if((ResponseType) Chooser.Run () == ResponseType.Accept) { Chooser.Hide(); MainClass.StatusMessage("Загрузка изображения основы..."); if(entryName.Text == "") { entryName.Text = System.IO.Path.GetFileNameWithoutExtension(Chooser.Filename); } using (FileStream fs = new FileStream(Chooser.Filename, FileMode.Open, FileAccess.Read)) { using (MemoryStream ms = new MemoryStream()) { fs.CopyTo(ms); SVGHelper FrameTest = new SVGHelper(); byte[] NewFile = ms.ToArray(); if(FrameTest.LoadImage(NewFile)) { ImageHelper = FrameTest; ImageHelper.PrepairForDBSave(); ImageChanged = true; } else { MessageDialog md = new MessageDialog ( this, DialogFlags.DestroyWithParent, MessageType.Warning, ButtonsType.Ok, "Не удалось загрузить изображение основы. Для успешной загрузки формат файла должен быть svg. " + "В файле изображения должен быть прямоугольник(rect) с id=framework указывающий положение рамки в которую вставлюятся кубы. " + "Размерность исходного изображения должна быть 1 куб."); md.Run (); md.Destroy(); } } } drawBasis.QueueDraw(); MainClass.StatusMessage("Ok"); } Chooser.Destroy (); }
public void Fill(int id) { ItemId = id; NewItem = false; MainClass.StatusMessage(String.Format ("Запрос основы №{0}...", id)); string sql = "SELECT basis.* FROM basis WHERE basis.id = @id"; try { SqliteCommand cmd = new SqliteCommand(sql, (SqliteConnection) QSMain.ConnectionDB); cmd.Parameters.AddWithValue("@id", id); using(SqliteDataReader rdr = cmd.ExecuteReader()) { rdr.Read(); labelId.Text = rdr["id"].ToString(); entryName.Text = rdr["name"].ToString(); spinW.Value = rdr.GetDouble(rdr.GetOrdinal("width")); spinH.Value = rdr.GetDouble(rdr.GetOrdinal("delta_h")); spinL.Value = rdr.GetDouble(rdr.GetOrdinal("delta_l")); if(rdr["image"] != DBNull.Value) { int size = DBWorks.GetInt(rdr, "image_size", 0); byte[] ImageFile = new byte[size]; rdr.GetBytes(rdr.GetOrdinal("image"), 0, ImageFile, 0, size); ImageHelper = new SVGHelper(); ImageHelper.LoadImage(ImageFile); drawBasis.QueueDraw(); } } sql = "SELECT * FROM basis_items WHERE basis_id = @id"; cmd = new SqliteCommand(sql, (SqliteConnection)QSMain.ConnectionDB); cmd.Parameters.AddWithValue("@id", id); using(SqliteDataReader rdr = cmd.ExecuteReader()) { while(rdr.Read()) { TreeIter iter; int nomenclatureId = rdr.GetInt32(rdr.GetOrdinal("item_id")); if(NomenclatureStore.GetIterFirst(out iter)) { do { if((int) NomenclatureStore.GetValue(iter, (int)NomenclatureCol.nomenclature_id) == nomenclatureId) { NomenclatureStore.SetValue(iter, (int)NomenclatureCol.id, (object) rdr.GetInt64(rdr.GetOrdinal("id"))); NomenclatureStore.SetValue(iter, (int)NomenclatureCol.count, rdr.GetInt32(rdr.GetOrdinal("count"))); NomenclatureStore.SetValue(iter, (int)NomenclatureCol.selected, true); } } while(NomenclatureStore.IterNext(ref iter)); } } } MainClass.StatusMessage("Ok"); this.Title = entryName.Text; } catch (Exception ex) { QSMain.ErrorMessageWithLog(this, "Ошибка получения информации о типе шкафа!", logger, ex); } TestCanSave(); }
public Cupboard() { Cubes = new List<Cube>(); BorderImage = new SVGHelper(); }