void ib_Click(object sender, ImageClickEventArgs e) { MyImageButton ib = ((MyImageButton)sender); ib.Image.IsDeleted = true; MyRadioButton first = null; for (int i = 0; i < buttons.Count; i++) { //la prima immagine non cancellata diventa la default MyRadioButton btn = buttons[i]; if (btn.Image.IsDeleted) { btn.Checked = false; } else if (first == null) { first = btn; } } if (first != null) { first.Checked = true; mainImage = Path.GetFileName(first.Image.File); } BuildImageControls(); UpdatePanelImages.Update(); }
public void RadioButtonOnKey() { tlog.Debug(tag, $"RadioButtonOnKey START"); var testingTarget = new MyRadioButton(); Assert.IsNotNull(testingTarget, "null handle"); Assert.IsInstanceOf <RadioButton>(testingTarget, "Should return RadioButton instance."); testingTarget.IsEnabled = true; testingTarget.IsSelected = true; Key key = null; var result = testingTarget.OnKey(key); Assert.AreEqual(false, result, "should be equal here!"); key = new Key() { State = Key.StateType.Up, KeyPressedName = "Return" }; result = testingTarget.OnKey(key); tlog.Debug(tag, "OnKey : " + result); testingTarget.Dispose(); tlog.Debug(tag, $"RadioButtonOnKey END (OK)"); }
public void RadioHandleControlStateOnTouch() { tlog.Debug(tag, $"RadioHandleControlStateOnTouch START"); var testingTarget = new MyRadioButton(); Assert.IsNotNull(testingTarget, "null handle"); Assert.IsInstanceOf <RadioButton>(testingTarget, "Should return RadioButton instance."); testingTarget.IsEnabled = true; Touch touch = new Touch(); try { testingTarget.MyHandleControlStateOnTouch(touch); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception : Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"RadioHandleControlStateOnTouch END (OK)"); }
private void BuildImageControls() { string tableId = "TableImages"; Control c = UpdatePanelImages.ContentTemplateContainer.FindControl(tableId); if (c != null) UpdatePanelImages.ContentTemplateContainer.Controls.Remove(c); UploadedImages list = UploadedImages.FromSession(RouteName.Value); Table table = new Table(); table.ID = tableId; table.Style[HtmlTextWriterStyle.Position] = "relative"; table.Style[HtmlTextWriterStyle.MarginLeft] = "auto"; table.Style[HtmlTextWriterStyle.MarginRight] = "auto"; table.Style[HtmlTextWriterStyle.TextAlign] = "center"; UpdatePanelImages.ContentTemplateContainer.Controls.Add(table); TableRow row = null; int col = 0; for (int i = 0; i < list.Count; i++) { UploadedImage ui = list.GetAt(i); if (ui.IsDeleted) continue; if (col == 0) { row = new TableRow(); table.Rows.Add(row); } TableCell cell = new TableCell(); row.Cells.Add(cell); cell.CssClass = "ImageCell"; cell.Width = Unit.Percentage(33.33333); Panel container = new Panel(); container.Style[HtmlTextWriterStyle.Display] = "inline-block"; cell.Controls.Add(container); string fileName = Path.GetFileName(ui.File); if (string.IsNullOrEmpty(mainImage)) mainImage = fileName; MyImageButton ib = new MyImageButton(ui); ib.ID = "IB_" + fileName; ib.ImageUrl = "~/Images/Recycle.png"; ib.ToolTip = "Elimina immagine"; ib.Click += new ImageClickEventHandler(ib_Click); ib.CssClass = "DeleteImage"; ib.CausesValidation = false; ib.Attributes["onmouseout"] = "normalDeleteImage(this);"; ib.Attributes["onmouseover"] = "hoverDeleteImage(this);"; container.Controls.Add(ib); UpdatePanel panel = new UpdatePanel(); panel.ChildrenAsTriggers = true; panel.UpdateMode = UpdatePanelUpdateMode.Conditional; container.Controls.Add(panel); System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image(); img.ImageUrl = string.Format("~/RouteImage.axd?Route={0}&Image={1}", RouteName.Value, HttpUtility.UrlEncode(ui.File)); img.Style[HtmlTextWriterStyle.PaddingLeft] = img.Style[HtmlTextWriterStyle.PaddingRight] = "20px"; img.Style[HtmlTextWriterStyle.PaddingTop] = "20px"; panel.ContentTemplateContainer.Controls.Add(img); TextBox tb = new TextBox(); tb.Style[HtmlTextWriterStyle.Display] = "block"; tb.Width = Unit.Pixel(200); tb.ID = "I_" + Path.GetFileName(ui.File); tb.Text = ui.Description; tb.CausesValidation = true; descriptionMap[tb] = ui; tb.TextChanged += new EventHandler(tb_TextChanged); tb.AutoPostBack = true; tb.Style[HtmlTextWriterStyle.MarginLeft] = tb.Style[HtmlTextWriterStyle.MarginRight] = "auto"; panel.ContentTemplateContainer.Controls.Add(tb); RequiredFieldValidator val = new RequiredFieldValidator(); val.ID = "V_" + tb.ID; val.ControlToValidate = tb.ID; val.ErrorMessage = "Descrizione immagine obbligatoria!"; val.SetFocusOnError = true; val.Display = ValidatorDisplay.Dynamic; panel.ContentTemplateContainer.Controls.Add(val); MyRadioButton rb = new MyRadioButton(ui); buttons.Add(rb); rb.Style[HtmlTextWriterStyle.Display] = "block"; rb.Width = Unit.Pixel(200); rb.ID = "CB_" + fileName; rb.Text = "Immagine principale"; rb.Style[HtmlTextWriterStyle.MarginLeft] = rb.Style[HtmlTextWriterStyle.MarginRight] = "auto"; rb.Checked = fileName == mainImage; rb.CausesValidation = false; rb.EnableViewState = true; container.Controls.Add(rb); if (++col == 3) col = 0; } }
private void BuildImageControls() { string tableId = "TableImages"; Control c = UpdatePanelImages.ContentTemplateContainer.FindControl(tableId); if (c != null) { UpdatePanelImages.ContentTemplateContainer.Controls.Remove(c); } UploadedImages list = UploadedImages.FromSession(RouteName.Value); Table table = new Table(); table.ID = tableId; table.Style[HtmlTextWriterStyle.Position] = "relative"; table.Style[HtmlTextWriterStyle.MarginLeft] = "auto"; table.Style[HtmlTextWriterStyle.MarginRight] = "auto"; table.Style[HtmlTextWriterStyle.TextAlign] = "center"; UpdatePanelImages.ContentTemplateContainer.Controls.Add(table); TableRow row = null; int col = 0; for (int i = 0; i < list.Count; i++) { UploadedImage ui = list.GetAt(i); if (ui.IsDeleted) { continue; } if (col == 0) { row = new TableRow(); table.Rows.Add(row); } TableCell cell = new TableCell(); row.Cells.Add(cell); cell.CssClass = "ImageCell"; cell.Width = Unit.Percentage(33.33333); Panel container = new Panel(); container.Style[HtmlTextWriterStyle.Display] = "inline-block"; cell.Controls.Add(container); string fileName = Path.GetFileName(ui.File); if (string.IsNullOrEmpty(mainImage)) { mainImage = fileName; } MyImageButton ib = new MyImageButton(ui); ib.ID = "IB_" + fileName; ib.ImageUrl = "~/Images/Recycle.png"; ib.ToolTip = "Elimina immagine"; ib.Click += new ImageClickEventHandler(ib_Click); ib.CssClass = "DeleteImage"; ib.CausesValidation = false; ib.Attributes["onmouseout"] = "normalDeleteImage(this);"; ib.Attributes["onmouseover"] = "hoverDeleteImage(this);"; container.Controls.Add(ib); UpdatePanel panel = new UpdatePanel(); panel.ChildrenAsTriggers = true; panel.UpdateMode = UpdatePanelUpdateMode.Conditional; container.Controls.Add(panel); System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image(); img.ImageUrl = string.Format("~/RouteImage.axd?Route={0}&Image={1}", RouteName.Value, HttpUtility.UrlEncode(ui.File)); img.Style[HtmlTextWriterStyle.PaddingLeft] = img.Style[HtmlTextWriterStyle.PaddingRight] = "20px"; img.Style[HtmlTextWriterStyle.PaddingTop] = "20px"; panel.ContentTemplateContainer.Controls.Add(img); TextBox tb = new TextBox(); tb.Style[HtmlTextWriterStyle.Display] = "block"; tb.Width = Unit.Pixel(200); tb.ID = "I_" + Path.GetFileName(ui.File); tb.Text = ui.Description; tb.CausesValidation = true; descriptionMap[tb] = ui; tb.TextChanged += new EventHandler(tb_TextChanged); tb.AutoPostBack = true; tb.Style[HtmlTextWriterStyle.MarginLeft] = tb.Style[HtmlTextWriterStyle.MarginRight] = "auto"; panel.ContentTemplateContainer.Controls.Add(tb); RequiredFieldValidator val = new RequiredFieldValidator(); val.ID = "V_" + tb.ID; val.ControlToValidate = tb.ID; val.ErrorMessage = "Descrizione immagine obbligatoria!"; val.SetFocusOnError = true; val.Display = ValidatorDisplay.Dynamic; panel.ContentTemplateContainer.Controls.Add(val); MyRadioButton rb = new MyRadioButton(ui); buttons.Add(rb); rb.Style[HtmlTextWriterStyle.Display] = "block"; rb.Width = Unit.Pixel(200); rb.ID = "CB_" + fileName; rb.Text = "Immagine principale"; rb.Style[HtmlTextWriterStyle.MarginLeft] = rb.Style[HtmlTextWriterStyle.MarginRight] = "auto"; rb.Checked = fileName == mainImage; rb.CausesValidation = false; rb.EnableViewState = true; container.Controls.Add(rb); if (++col == 3) { col = 0; } } }
private void initUC(string responseJson) { initTimer(Parser.FieldParse <string>(responseJson, "timeleft")); // timeLeft - ushhhh var slide = JObject.Parse(responseJson)["slide"]; label3.Text = slide["question"].ToObject <string>(); slideNumber = slide["slideNumber"].ToObject <int>(); if (slideNumber.Equals(0)) // it's the first slide { button1.Visible = false; // can't move back } isOptional = slide["isOptional"].ToObject <bool>(); button2.Enabled = isOptional; string image = imageBase64 = slide["image"].ToObject <string>(); if (image != null && !image.Equals("")) { putImage(image); } else { pictureBox2.Visible = false; panel1.Size = new Size(440, panel1.Height); } label1.Text = $"Вопрос №{(slide["slideOrderNumber"].ToObject<int>() + 1).ToString()}"; if (slide["answerType"].ToObject <string>().Equals("text")) { flowLayoutPanel1.Visible = false; textBox1.Visible = true; textBox1.TextChanged += answerChanged; if (slide["customValue"].ToObject <string>() == null) // VERIFY! { textBox1.GotFocus += removePlaceholder; textBox1.Text = slide["answers"].Children().ToList()[0]["value"].ToObject <string>(); } else { textBox1.Text = slide["customValue"].ToObject <string>(); } } else { linkLabel1.Visible = true; List <Answer> answers = slide["answers"].ToObject <List <Answer> >(); answers = answers.OrderBy(a => a.answerNumber).ToList(); // asc foreach (Answer answer in answers) { ICheckable chOrRad; if (slide["answerType"].ToObject <string>().Equals("many")) { chOrRad = new MyCheckBox(); } else { chOrRad = new MyRadioButton(); } flowLayoutPanel1.Controls.Add((Control)chOrRad); // Dangerous, but it works controls.Add(chOrRad); chOrRad.setOnCheckedChanged(answerChanged); chOrRad.setChecked(answer.isSelected); if (!answer.isCustom) { chOrRad.setText(answer.value); chOrRad.setSize(new Size(433, 20)); } else { chOrRad.setText(""); chOrRad.setSize(new Size(13, 20)); chOrRad.setOnCheckedChanged(customAnswerChanged); TextBox textBox = new TextBox(); textBox.TextChanged += answerChanged; customTextBox = textBox; textBox.Enabled = chOrRad.isChecked(); if (slide["customValue"].ToObject <string>() == null) // verify too { textBox.Text = answer.value; textBox.GotFocus += removePlaceholder; } else { textBox.Text = slide["customValue"].ToObject <string>(); } flowLayoutPanel1.Controls.Add(textBox); } } } }