Exemple #1
0
    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();
    }
Exemple #2
0
        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)");
        }
Exemple #3
0
        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)");
        }
Exemple #4
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;
        }
    }
Exemple #5
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;
            }
        }
    }
Exemple #6
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);
                    }
                }
            }
        }