Changeset 2626


Ignore:
Timestamp:
Feb 8, 2011, 4:59:09 PM (11 years ago)
Author:
sauer
Message:

Wizard: result output preparation

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Wizard/Config/EnDeCrypt/wizard.config.classicEnDe.xml

    r2558 r2626  
    5050    </comboBox>
    5151
    52     <output>
     52    <input>
    5353      <name lang="en">Summary</name>
    5454      <description lang="en" >
     
    6161      <history alignment="Center"/>
    6262     
    63       <inputBox plugin="TextInput1" property="Text" alignment="Right" width="80%" visibleLines="10">
     63      <inputBox plugin="TextInput1" property="Text" alignment="Right" width="80%" visibleLines="5">
    6464        <description lang="en">
    6565          Message to encrypt:
     
    8888        <item content="Base64" lang="en"/>
    8989      </comboBox>
     90
     91      <outputBox plugin="CaesarResult" property="Text" alignment="Stretch" width="80%" visibleLines="2">
     92        <description lang="en">
     93          Some output message:
     94        </description>
     95      </outputBox>
    9096     
    9197      <loadSample file="WorkspaceManagerSamples\Caesar_Sample.cwm" title="W_Caesar_Sample"/>
    92     </output>
     98    </input>
    9399   
    94100  </input>
  • trunk/CrypPlugins/Wizard/WizardControl.xaml.cs

    r2625 r2626  
    177177
    178178
    179             if (element.Name == "input" || element.Name == "output")
     179            if (element.Name == "input")
    180180            {
    181181                categoryGrid.Visibility = Visibility.Hidden;
     
    183183
    184184                var inputs = from el in element.Elements()
    185                              where el.Name == "inputBox" || el.Name == "comboBox" || el.Name == "checkBox"
     185                             where el.Name == "inputBox" || el.Name == "comboBox" || el.Name == "checkBox" || el.Name == "outputBox"
    186186                             select el;
    187187
     
    197197                        SwitchNextButtonContent();
    198198                }
    199                 if (inputPanel.Tag == null)
    200                     inputPanel.Tag = element.Element("output");
    201199
    202200                FillInputStack(inputs, element.Name.ToString());
     
    214212                //generate radio buttons
    215213                var options = from el in element.Elements()
    216                               where el.Name == "category" || el.Name == "input" || el.Name == "loadSample" || el.Name == "output"
     214                              where el.Name == "category" || el.Name == "input" || el.Name == "loadSample"
    217215                              select el;
    218216
     
    310308                    inputStack.Children.Add(description);
    311309
    312                     bool isInput = (type == "input");
    313 
    314                     Control inputElement = CreateInputElement(input, inputFieldStyle, isInput);
     310                    Control inputElement = CreateInputElement(input, inputFieldStyle);
    315311
    316312                    //Set width:
     
    369365        }
    370366
    371         private Control CreateInputElement(XElement input, Style inputFieldStyle, bool isInput)
     367        private Control CreateInputElement(XElement input, Style inputFieldStyle)
    372368        {
    373369            Control element = null;
    374370
    375             if (input.Name == "inputBox")
    376             {
    377                 var textBox = new TextBox();
    378                 textBox.Tag = input;
    379                 textBox.AcceptsReturn = true;
    380                 if (input.Attribute("visibleLines") != null)
    381                 {
    382                     int visibleLines;
    383                     if (Int32.TryParse(input.Attribute("visibleLines").Value.Trim(), out visibleLines))
    384                     {
    385                         textBox.MinLines = visibleLines;
    386                         textBox.MaxLines = visibleLines;
    387                     }
    388                 }
    389                 textBox.Style = inputFieldStyle;
    390                 inputStack.Children.Add(textBox);
    391 
    392                 if (isInput)
    393                 {
     371            string key = GetElementPluginPropertyKey(input);
     372
     373            switch (input.Name.ToString())
     374            {
     375                case "inputBox":
     376                    var inputBox = new TextBox();
     377                    inputBox.Tag = input;
     378                    inputBox.AcceptsReturn = true;
     379                    if (input.Attribute("visibleLines") != null)
     380                    {
     381                        int visibleLines;
     382                        if (Int32.TryParse(input.Attribute("visibleLines").Value.Trim(), out visibleLines))
     383                        {
     384                            inputBox.MinLines = visibleLines;
     385                            inputBox.MaxLines = visibleLines;
     386                        }
     387                    }
     388                    inputBox.Style = inputFieldStyle;
     389                    inputStack.Children.Add(inputBox);
     390
    394391                    if (input.Attribute("regex") != null)
    395392                    {
    396393                        var regex = new Regex(input.Attribute("regex").Value, RegexOptions.Compiled);
    397394
    398                         textBox.TextChanged += delegate
    399                         {
    400                             CheckRegex(textBox, regex);
     395                        inputBox.TextChanged += delegate
     396                        {
     397                            CheckRegex(inputBox, regex);
    401398                        };
    402399                    }
    403400
    404                     if (propertyValueDict.ContainsKey(GetElementID(input)))
    405                         textBox.Text = (string) propertyValueDict[GetElementID(input)].Value;
     401                    if (key != null && propertyValueDict.ContainsKey(key))
     402                        inputBox.Text = (string)propertyValueDict[key].Value;
    406403                    else if (input.Attribute("defaultValue") != null)
    407                         textBox.Text = input.Attribute("defaultValue").Value.Trim();
    408                 }
    409                 else
    410                 {
    411                     if (input.Attribute("plugin") != null && input.Attribute("property") != null)
    412                     {
    413                         var plugin = input.Attribute("plugin").Value;
    414                         var property = input.Attribute("property").Value;
    415                         foreach (var e in propertyValueDict.Values)
    416                         {
    417                             if (e.PluginName == plugin && e.PropertyName == property)
    418                                 textBox.Text = (String)e.Value;
    419                         }
    420                     }
    421                 }
    422 
    423                 element = textBox;
    424             }
    425             else if (input.Name == "comboBox")
    426             {
    427                 ComboBox cb = new ComboBox();
    428                 cb.Style = inputFieldStyle;
    429                 cb.Tag = input;
    430 
    431                 var items = FindElementsInElement(input, "item");
    432                 foreach (var item in items)
    433                 {
    434                     ComboBoxItem cbi = new ComboBoxItem();
    435                     if (item.Attribute("content") != null)
    436                         cbi.Content = item.Attribute("content").Value;
    437                     cb.Items.Add(cbi);
    438                 }
    439 
    440                 if (isInput)
    441                 {
    442                     if (propertyValueDict.ContainsKey(GetElementID(input)))
    443                     {
    444                         if (propertyValueDict[GetElementID(input)].Value is int)
     404                        inputBox.Text = input.Attribute("defaultValue").Value.Trim();
     405
     406                    element = inputBox;
     407                    break;
     408
     409                case "comboBox":
     410                    ComboBox comboBox = new ComboBox();
     411                    comboBox.Style = inputFieldStyle;
     412                    comboBox.Tag = input;
     413
     414                    var items = FindElementsInElement(input, "item");
     415                    foreach (var item in items)
     416                    {
     417                        ComboBoxItem cbi = new ComboBoxItem();
     418                        if (item.Attribute("content") != null)
     419                            cbi.Content = item.Attribute("content").Value;
     420                        comboBox.Items.Add(cbi);
     421                    }
     422
     423
     424                    if (key != null && propertyValueDict.ContainsKey(key))
     425                    {
     426                        if (propertyValueDict[key].Value is int)
    445427                        {
    446428                            ComboBoxItem cbi =
    447                                 (ComboBoxItem) cb.Items.GetItemAt((int) propertyValueDict[GetElementID(input)].Value);
     429                                (ComboBoxItem)comboBox.Items.GetItemAt((int)propertyValueDict[key].Value);
    448430                            cbi.IsSelected = true;
    449431                        }
     
    454436                        if (Int32.TryParse(input.Attribute("defaultValue").Value.Trim(), out i))
    455437                        {
    456                             ComboBoxItem cbi = (ComboBoxItem) cb.Items.GetItemAt(i);
     438                            ComboBoxItem cbi = (ComboBoxItem)comboBox.Items.GetItemAt(i);
    457439                            cbi.IsSelected = true;
    458440                        }
    459441                    }
    460                 }
    461                 else
    462                 {
    463                     if (input.Attribute("plugin") != null && input.Attribute("property") != null)
    464                     {
    465                         var plugin = input.Attribute("plugin").Value;
    466                         var property = input.Attribute("property").Value;
    467                         foreach (var e in propertyValueDict.Values)
    468                         {
    469                             if (e.PluginName == plugin && e.PropertyName == property)
    470                                 cb.SelectedIndex = (int) e.Value;
    471                         }
    472                     }
    473                 }
    474 
    475                 inputStack.Children.Add(cb);
    476                 element = cb;
    477             }
    478             else if (input.Name == "checkBox")
    479             {
    480                 CheckBox cb = new CheckBox();
    481                 cb.Tag = input;
    482                 cb.Style = inputFieldStyle;
    483 
    484                 if (input.Attribute("content") != null)
    485                     cb.Content = input.Attribute("content").Value;
    486 
    487                 if (isInput)
    488                 {
    489                     if (propertyValueDict.ContainsKey(GetElementID(input)))
    490                     {
    491                         string value = (string) propertyValueDict[GetElementID(input)].Value;
     442
     443
     444                    inputStack.Children.Add(comboBox);
     445                    element = comboBox;
     446                    break;
     447
     448                case "checkBox":
     449                    CheckBox checkBox = new CheckBox();
     450                    checkBox.Tag = input;
     451                    checkBox.Style = inputFieldStyle;
     452
     453                    if (input.Attribute("content") != null)
     454                        checkBox.Content = input.Attribute("content").Value;
     455
     456
     457                    if (key != null && propertyValueDict.ContainsKey(key))
     458                    {
     459                        string value = (string)propertyValueDict[key].Value;
    492460                        if (value.ToLower() == "true")
    493                             cb.IsChecked = true;
     461                            checkBox.IsChecked = true;
    494462                        else
    495                             cb.IsChecked = false;
     463                            checkBox.IsChecked = false;
    496464                    }
    497465                    else if (input.Attribute("defaultValue") != null)
     
    499467                        string value = input.Attribute("defaultValue").Value;
    500468                        if (value.ToLower() == "true")
    501                             cb.IsChecked = true;
     469                            checkBox.IsChecked = true;
    502470                        else
    503                             cb.IsChecked = false;
    504                     }
    505                 }
    506                 else
    507                 {
    508                     if (input.Attribute("plugin") != null && input.Attribute("property") != null)
    509                     {
    510                         var plugin = input.Attribute("plugin").Value;
    511                         var property = input.Attribute("property").Value;
    512                         foreach (var e in propertyValueDict.Values)
    513                         {
    514                             if (e.PluginName == plugin && e.PropertyName == property)
    515                                 cb.IsChecked = (bool)e.Value;
    516                         }
    517                     }
    518                 }
    519 
    520                 inputStack.Children.Add(cb);
    521                 element = cb;
    522             }
    523 
    524             if (!isInput && element != null)
    525                 element.IsEnabled = false;
     471                            checkBox.IsChecked = false;
     472                    }
     473
     474                    inputStack.Children.Add(checkBox);
     475                    element = checkBox;
     476                    break;
     477
     478                case "outputBox":
     479                    var outputBox = new TextBox();
     480                    outputBox.Tag = input;
     481                    outputBox.AcceptsReturn = true;
     482                    if (input.Attribute("visibleLines") != null)
     483                    {
     484                        int visibleLines;
     485                        if (Int32.TryParse(input.Attribute("visibleLines").Value.Trim(), out visibleLines))
     486                        {
     487                            outputBox.MinLines = visibleLines;
     488                            outputBox.MaxLines = visibleLines;
     489                        }
     490                    }
     491                    outputBox.Style = inputFieldStyle;
     492                    inputStack.Children.Add(outputBox);
     493
     494                    if (input.Attribute("regex") != null)
     495                    {
     496                        var regex = new Regex(input.Attribute("regex").Value, RegexOptions.Compiled);
     497
     498                        outputBox.TextChanged += delegate
     499                        {
     500                            CheckRegex(outputBox, regex);
     501                        };
     502                    }
     503
     504                    //TODO: Refresh content from sample on runtime
     505                    outputBox.IsEnabled = false;
     506
     507                    element = outputBox;
     508                    break;
     509            }
    526510
    527511            return element;
     512        }
     513
     514        private string GetElementPluginPropertyKey(XElement element)
     515        {
     516            var plugin = element.Attribute("plugin").Value;
     517            var property = element.Attribute("property").Value;
     518            string key = null;
     519            if (plugin != null && property != null)
     520                key = string.Format("{0}.{1}", plugin, property);
     521            return key;
    528522        }
    529523
     
    651645                {
    652646                    GuiLogMessage(string.Format("Failed settings plugin property {0}.{1} to \"{2}\"!", ppv.PluginName, ppv.PropertyName, ppv.Value), NotificationLevel.Error);
    653                     return;
    654647                }
    655648            }
     
    829822                Control c = (Control)o;
    830823                XElement ele = (XElement)c.Tag;
    831                 var id = GetElementID(ele);
     824               
    832825                PluginPropertyValue newEntry = new PluginPropertyValue();
    833826                if (ele.Attribute("plugin") != null && ele.Attribute("property") != null)
     
    867860                    }
    868861
    869                     if (!propertyValueDict.ContainsKey(id))
    870                         propertyValueDict.Add(id, newEntry);
    871                     else
    872                         propertyValueDict[id] = newEntry;
     862                    var key = GetElementPluginPropertyKey(ele);
     863                    if (key != null)
     864                    {
     865                        if (!propertyValueDict.ContainsKey(key))
     866                            propertyValueDict.Add(key, newEntry);
     867                        else
     868                            propertyValueDict[key] = newEntry;
     869                    }
    873870                }
    874871            }
     
    881878                Control control = (Control)o;
    882879                XElement ele = (XElement)control.Tag;
    883                 var id = GetElementID(ele);
    884 
    885                 if (propertyValueDict.ContainsKey(id))
    886                     propertyValueDict.Remove(id);
     880
     881                var key = GetElementPluginPropertyKey(ele);
     882                if (key != null && propertyValueDict.ContainsKey(key))
     883                    propertyValueDict.Remove(key);
    887884            }
    888885        }
Note: See TracChangeset for help on using the changeset viewer.