private static TriggerBase CreateTrigger(EntityFieldInfo fieldInfo, IDataService dataService, GenericDataListState state, Nullable<Boolean> isLocked, FrameworkElement element)
        {
            TriggerBase trigger = null;
            if (isLocked.HasValue)
            {
                MultiDataTrigger multiDataTrigger = new MultiDataTrigger();
                Condition conditionState = new Condition();
                conditionState.Binding = CreateBindingState(element);
                conditionState.Value = state;
                multiDataTrigger.Conditions.Add(conditionState);
                Condition conditionIsLocked = new Condition();
                conditionIsLocked.Binding = CreateBindingIsLocked(element);
                conditionIsLocked.Value = isLocked.Value;
                multiDataTrigger.Conditions.Add(conditionIsLocked);
                multiDataTrigger.Setters.Add(DataControlTemplateBuilder.CreateSetter(fieldInfo, dataService, state, isLocked, element));
                trigger = multiDataTrigger;
            }
            else
            {
                DataTrigger dataTrigger = new DataTrigger();
                dataTrigger.Binding = DataControlTemplateBuilder.CreateBindingState(element);
                dataTrigger.Value = state;
                dataTrigger.Setters.Add(DataControlTemplateBuilder.CreateSetter(fieldInfo, dataService, state, isLocked, element));
                trigger = dataTrigger;
            }

            return trigger;
        }
 private static SetterBase CreateSetter(EntityFieldInfo fieldInfo, IDataService dataService, GenericDataListState state, bool? isLocked, FrameworkElement element)
 {
     Setter setter = new Setter();
     setter.Property = ContentControl.ContentTemplateProperty;
     setter.Value = DataControlTemplateBuilder.CreateTemplate(fieldInfo, dataService,  state, isLocked,element);
     return setter;
 }
Ejemplo n.º 3
0
 private static Binding CreateBindingState(GenericDataListState genericDataListState, DataGrid dataGrid)
 {
     Binding binding = new Binding();
       binding.Source = dataGrid;
       binding.Path = new PropertyPath("DataContext.State");
       binding.Mode = BindingMode.OneWay;
       binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
       return binding;
 }
Ejemplo n.º 4
0
        private static DataTrigger CreateTrigger(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
        {
            DataTrigger dataTrigger = new DataTrigger();
              dataTrigger.Binding = CreateBindingState(state, dataGrid);
              dataTrigger.Value = state;
              dataTrigger.Setters.Add(CreateSetter(entityFieldInfo, state, dataGrid));

              return dataTrigger;
        }
Ejemplo n.º 5
0
 private static FrameworkElementFactory CreateTemplateText(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
 {
     FrameworkElementFactory textBox = new FrameworkElementFactory(typeof(TextBox));
       textBox.SetBinding(TextBox.TextProperty, CreateBindingTwoWay(entityFieldInfo.Path));
       return  textBox;
 }
Ejemplo n.º 6
0
        private static FrameworkElementFactory CreateTemplateDate(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
        {
            FrameworkElementFactory grid = new FrameworkElementFactory(typeof(Grid));

              var column1 = new FrameworkElementFactory(typeof(ColumnDefinition));
              column1.SetValue(ColumnDefinition.WidthProperty, new GridLength(1, GridUnitType.Star));
              var column2 = new FrameworkElementFactory(typeof(ColumnDefinition));
              column2.SetValue(ColumnDefinition.WidthProperty, new GridLength(1, GridUnitType.Auto));

              grid.AppendChild(column1);
              grid.AppendChild(column2);

              FrameworkElementFactory textBox = new FrameworkElementFactory(typeof(TextBox));
              textBox.SetBinding(TextBox.TextProperty, CreateBindingTwoWay(entityFieldInfo.Path));
              textBox.SetValue(Grid.ColumnProperty, 0);
              grid.AppendChild(textBox);

              FrameworkElementFactory datePicker = new FrameworkElementFactory(typeof(DatePicker));
              datePicker.SetValue(DatePicker.WidthProperty, 28D);
              datePicker.SetValue(Grid.ColumnProperty, 1);
              grid.AppendChild(datePicker);

              Binding bindingSelectedDate = new Binding("[" + entityFieldInfo.Path + "]");
              bindingSelectedDate.Mode = BindingMode.TwoWay;
              bindingSelectedDate.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
              bindingSelectedDate.Converter = new StringToDateConverter();
              datePicker.SetBinding(DatePicker.SelectedDateProperty, bindingSelectedDate);
              return  grid;
        }
Ejemplo n.º 7
0
 private static FrameworkElementFactory CreateTemplateCombo(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
 {
     String[]  items = entityFieldInfo.Path.Split(".".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
       FrameworkElementFactory comboBox = new FrameworkElementFactory(typeof(ComboBox));
       if (state == GenericDataListState.Search)
       { comboBox.SetValue(ComboBox.IsEditableProperty, true); }
       String comboListPath = "ComboItemsSource[" + items[items.Length - 2] + "." + items[items.Length - 1] + "]";
       Binding bindingList = new Binding(comboListPath);
       bindingList.Mode = BindingMode.OneWay;
       bindingList.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
       comboBox.SetBinding(ComboBox.ItemsSourceProperty, bindingList);
       Binding  binding = new Binding();
       binding.Path = new PropertyPath("[" + entityFieldInfo.Path + "]");
       binding.Mode = BindingMode.TwoWay;
       binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
       binding.ValidatesOnDataErrors = true;
       comboBox.SetBinding(ComboBox.SelectedItemProperty, binding);
       return  comboBox;
 }
Ejemplo n.º 8
0
 private static FrameworkElementFactory CreateTemplateColor(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
 {
     FrameworkElementFactory colorPicker = new FrameworkElementFactory(typeof(ColorPicker));
       Binding binding = CreateBindingTwoWay(entityFieldInfo.Path);
       binding.Converter = new StringToColorConverter();
       colorPicker.SetBinding(ColorPicker.SelectedColorProperty, binding);
       return colorPicker;
 }
Ejemplo n.º 9
0
 private static FrameworkElementFactory CreateTemplateCheck(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
 {
     FrameworkElementFactory comboBox = new FrameworkElementFactory(typeof(ComboBox));
       if (state == GenericDataListState.Search)
       { comboBox.SetValue(ComboBox.IsEditableProperty, true); }
       List<String> items = new List<string>();
       items.Add(CultureConfiguration.BooleanNullString);
       items.Add(CultureConfiguration.BooleanTrueString);
       items.Add(CultureConfiguration.BooleanFalseString);
       comboBox.SetValue(ComboBox.ItemsSourceProperty, items);
       Binding binding = new Binding();
       binding.Path = new PropertyPath("[" +entityFieldInfo.Path +"]");
       binding.Mode = BindingMode.TwoWay;
       binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
       binding.ValidatesOnDataErrors = true;
       comboBox.SetBinding(ComboBox.SelectedItemProperty, binding);
       return  comboBox;
 }
Ejemplo n.º 10
0
        private static DataTemplate CreateTemplate(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
        {
            DataTemplate dataTemplate = new DataTemplate();

              if (entityFieldInfo.IsNeeded == false && entityFieldInfo.IsMainTableField == false && state != GenericDataListState.Search)
              {
              return CreateCellTemplate(entityFieldInfo, dataGrid);
              }
              else
              {
              switch (entityFieldInfo .ControlType )
              {
                  case Infrastructure.Attributes.ControlType.Check :
                      dataTemplate.VisualTree = CreateTemplateCheck(entityFieldInfo, state, dataGrid);
                      break;
                      case Infrastructure.Attributes.ControlType.Color :
                      dataTemplate.VisualTree = CreateTemplateColor(entityFieldInfo, state, dataGrid);
                      break;
                      case Infrastructure.Attributes.ControlType.Date :
                      dataTemplate.VisualTree = CreateTemplateDate(entityFieldInfo, state, dataGrid);
                      break;
                      case Infrastructure.Attributes.ControlType.Decimal :
                      dataTemplate.VisualTree = CreateTemplateDecimal(entityFieldInfo, state, dataGrid);
                      break;
                      case Infrastructure.Attributes.ControlType.Integer :
                      dataTemplate.VisualTree = CreateTemplateInteger(entityFieldInfo, state, dataGrid);
                      break;
                      case Infrastructure.Attributes.ControlType.Pr :
                      dataTemplate.VisualTree = CreateTemplatePr(entityFieldInfo, state, dataGrid);
                      break;
                      case Infrastructure.Attributes.ControlType.Text :
                      dataTemplate.VisualTree = CreateTemplateText(entityFieldInfo, state, dataGrid);
                      break;
                      case Infrastructure.Attributes.ControlType.Combo:
                      dataTemplate.VisualTree = CreateTemplateCombo(entityFieldInfo, state, dataGrid);
                      break;

              }

              }

              return dataTemplate;
        }
Ejemplo n.º 11
0
 private static Setter CreateSetter(EntityFieldInfo entityFieldInfo, GenericDataListState state, DataGrid dataGrid)
 {
     Setter setter = new Setter();
       setter.Property = ContentControl.ContentTemplateProperty;
       setter.Value = CreateTemplate(entityFieldInfo, state, dataGrid);
       return setter;
 }
        private static object CreateTemplate(EntityFieldInfo fieldInfo, IDataService dataService, GenericDataListState state, bool? isLocked, FrameworkElement element)
        {
            if (isLocked.HasValue)
            {
                if (isLocked.Value == true)
                {
                    if (state == GenericDataListState.Deleting)
                    {
                        return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService,element);
                    }
                    else if (state == GenericDataListState.Display)
                    {
                        return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element);
                    }
                    else if (state == GenericDataListState.InsertingDisplay)
                    {
                        if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                        { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                        else
                        { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }

                    }
                    else if (state == GenericDataListState.InsertingEmpty)
                    {
                        if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                        { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                        else
                        { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                    }
                    else if (state == GenericDataListState.Search)
                    {
                        return DataControlTemplateBuilder.CreateTemplateSearch(fieldInfo, dataService, element);
                    }
                    else if (state == GenericDataListState.Updating)
                    {
                        if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                        { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                        else
                        { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                    }
                }
                else
                {
                    if (state == GenericDataListState.Deleting)
                    {
                        return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element);
                    }
                    else if (state == GenericDataListState.Display)
                    {
                        if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                        { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                        else
                        { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                    }
                    else if (state == GenericDataListState.InsertingDisplay)
                    {
                        if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                        { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                        else
                        { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                    }
                    else if (state == GenericDataListState.InsertingEmpty)
                    {
                        if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                        { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                        else
                        { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                    }
                    else if (state == GenericDataListState.Search)
                    {
                        return CreateTemplateSearch(fieldInfo, dataService, element);
                    }
                    else if (state == GenericDataListState.Updating)
                    {
                        if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                        { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                        else
                        { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                    }
                }
            }
            else
            {
                if (state == GenericDataListState.Deleting)
                {
                    return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element);
                }
                else if (state == GenericDataListState.Display)
                {
                    return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element);
                }
                else if (state == GenericDataListState.InsertingDisplay)
                {
                    if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                    { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                    else
                    { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                }
                else if (state == GenericDataListState.InsertingEmpty)
                {
                    if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                    { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                    else
                    { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                }
                else if (state == GenericDataListState.Search)
                {
                    return DataControlTemplateBuilder.CreateTemplateSearch(fieldInfo, dataService, element);
                }
                else if (state == GenericDataListState.Updating)
                {
                    if (fieldInfo.IsNeeded == false && fieldInfo.IsMainTableField == false)
                    { return DataControlTemplateBuilder.CreateTemplateDisplay(fieldInfo, dataService, element); }
                    else
                    { return DataControlTemplateBuilder.CreateTemplateEdit(fieldInfo, dataService, element); }
                }
            }

            return null;
        }