Commit 690f781e by liulongfei

底飞实现

parent 0b0adb28
<entry>
<entry>
<element complete="true" scene="TITLES/2022/YC/YC_FeiGun_image" name="1000">
<entry name="viz">
<entry name="location"/>
<entry name="front">
<entry name="scene">TITLES/2022/YC/YC_FeiGun_image</entry>
</entry>
<entry name="load">scene</entry>
<entry name="viz_layer"/>
<entry name="use_all_directors">yes</entry>
</entry>
<schema>
<field description="FZZongYi-M05S-Regular" location="1/2" singleline="True" type="richtext" name="1"/>
<field description="Image1" location="1/1" type="image" name="Image1"/>
<field type="float" name="scroll_data.space_before"/>
<field type="float" name="scroll_data.space_after"/>
</schema>
<entry name="data">
<entry name="1">22222222</entry>
<entry name="Image1">IMAGE*TITLES/2022/YC/mu_ad</entry>
<entry name="scroll_data.space_before">0</entry>
<entry name="scroll_data.space_after">0</entry>
</entry>
</element>
</entry>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<update>
<element name="1011" description="12345678" complete="true" showautodescription="true" scene="TITLES/2022/YC/YC_FeiGun_text">
<element complete="true" scene="TITLES/2022/YC/YC_FeiGun_image" name="1000">
<entry name="viz">
<entry name="location"></entry>
<entry name="location"/>
<entry name="front">
<entry name="scene" timestamp="">TITLES/2022/YC/YC_FeiGun_text</entry>
<entry name="scene">TITLES/2022/YC/YC_FeiGun_image</entry>
</entry>
<entry name="load">scene</entry>
<entry name="viz_layer"></entry>
<entry name="viz_layer"/>
<entry name="use_all_directors">yes</entry>
<entry name="fonts"></entry>
</entry>
<ref name="master_template">/storage/shows/{ABCB973C-3A85-4DC2-BF2B-2C01BD1433E7}/mastertemplates/YC_FeiGun_text</ref>
<entry name="default_alternatives"></entry>
<schema>
<field name="1" type="richtext" description="FZZongYi-M05S-Regular" singleline="True" location="1/1"/>
<field name="scroll_data.space_before" type="float"/>
<field name="scroll_data.space_after" type="float"/>
<field description="FZZongYi-M05S-Regular" location="1/2" singleline="True" type="richtext" name="1"/>
<field description="Image1" location="1/1" type="image" name="Image1"/>
<field type="float" name="scroll_data.space_before"/>
<field type="float" name="scroll_data.space_after"/>
</schema>
<entry name="data">
<entry name="1" >12345678</entry>
<entry name="scroll_data.space_before" >0</entry>
<entry name="scroll_data.space_after" >0</entry>
</entry>
<entry name="dblink">
<entry name="1"/>
</entry>
<entry name="settings">
<entry name="tabfields">
<entry name="1"/>
<entry name="scroll_data">
<entry name="type">scroll_data</entry>
</entry>
</entry>
<entry name="isfilescript">false</entry>
<entry name="modified">2023-03-13T16:54:12</entry>
<entry name="1">22222222</entry>
<entry name="Image1">IMAGE*TITLES/2022/YC/mu_ad</entry>
<entry name="scroll_data.space_before">0</entry>
<entry name="scroll_data.space_after">0</entry>
</entry>
</element>
</update>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Package.Storage;
namespace VIZ.Package.Domain
{
/// <summary>
/// 底飞字段定义
/// </summary>
public class GridColumnScrollElementFieldDefinition : GridColumnControlFieldDefinition
{
#region PageBase -- 关联页
private PageModelBase pageBase;
/// <summary>
/// 关联页
/// </summary>
public PageModelBase PageBase
{
get { return pageBase; }
set { pageBase = value; this.RaisePropertyChanged(nameof(PageBase)); }
}
#endregion
}
}
......@@ -14,7 +14,7 @@ namespace VIZ.Package.Domain
/// <summary>
/// 获取场景信息
/// </summary>
/// <param name="pageBase">场景模型基类</param>
/// <param name="pageBase">模型基类</param>
/// <returns>场景信息</returns>
public static SceneInfoModel GetSceneInfo(this PageModelBase pageBase)
{
......@@ -32,17 +32,31 @@ namespace VIZ.Package.Domain
}
}
/// <summary>
/// 获取场景父级
/// </summary>
/// <param name="pageBase">场景父级</param>
/// <param name="pageBase">页模型基类</param>
/// <returns>场景父级</returns>
public static string GetSceneParent(this PageModelBase pageBase)
{
string parent = ApplicationDomainEx.CurrentPage.ScenePath.Substring(0, ApplicationDomainEx.CurrentPage.ScenePath.LastIndexOf('/'));
return parent;
}
/// <summary>
/// 获取模板ID或页ID
/// </summary>
/// <param name="pageBase">页模型基类</param>
/// <returns>模板ID或页ID</returns>
public static Guid GetTemplateIdOrPageId(this PageModelBase pageBase)
{
if (pageBase is PageModel page)
return page.PageID;
if (pageBase is PageTemplateModel template)
return template.TemplateID;
return Guid.Empty;
}
}
}
......@@ -77,6 +77,7 @@
<Compile Include="ApplicationDomainEx.cs" />
<Compile Include="Core\GridColumnControlFieldDefinition.cs" />
<Compile Include="Core\GridColumnDefinition.cs" />
<Compile Include="Core\GridColumnScrollElementFieldDefinition.cs" />
<Compile Include="Core\IHotkeySupport.cs" />
<Compile Include="Enum\ConnGroupStatus.cs" />
<Compile Include="Enum\MenuItemType.cs" />
......
......@@ -44,7 +44,7 @@ namespace VIZ.Package.Module
/// <summary>
/// 值改变时触发
/// </summary>
private void EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
protected virtual void EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
{
// 是否需要发送至预览
if (!this.IsSendToPreview)
......
......@@ -54,7 +54,7 @@ namespace VIZ.Package.Module
/// <summary>
/// 值改变时触发
/// </summary>
private void EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
protected virtual void EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
{
// 是否需要发送至预览
if (!this.IsSendToPreview)
......
......@@ -44,7 +44,7 @@ namespace VIZ.Package.Module
/// <summary>
/// 值改变时触发
/// </summary>
private void EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
protected virtual void EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
{
// 是否需要发送至预览
if (!this.IsSendToPreview)
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Package.Domain;
namespace VIZ.Package.Module
{
/// <summary>
/// 图片底飞单元格编辑
/// </summary>
public class ImageScrollElementCellEdit : ImageListCellEdit
{
/// <summary>
/// 值改变时触发
/// </summary>
protected override void EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
{
// 是否需要发送至预览
if (!this.IsSendToPreview)
return;
// 预览连接不存在
if (ApplicationDomainEx.PreviewConn == null)
return;
DevExpress.Xpf.Grid.EditGridCellData cellData = this.DataContext as DevExpress.Xpf.Grid.EditGridCellData;
if (cellData == null)
return;
GridColumnControlFieldDefinition columnDefinition = cellData.Column.DataContext as GridColumnControlFieldDefinition;
if (columnDefinition == null)
return;
// 设置值
IDictionary<string, object> dic = cellData.Row as IDictionary<string, object>;
dic[columnDefinition.FieldName] = e.NewValue?.ToString() ?? string.Empty;
// 向Viz发送指令
//this.VizCommandControlObjectService.SetControlObjectListValue(
// ApplicationDomainEx.PreviewConn,
// columnDefinition.ControlObject.TreeNodePath,
// columnDefinition.ControlField.FieldIdentifier,
// cellData.RowData.RowHandle.Value,
// columnDefinition.FieldName,
// e.NewValue?.ToString() ?? string.Empty);
}
}
}
using DevExpress.Xpf.Editors;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Package.Domain;
namespace VIZ.Package.Module
{
/// <summary>
/// 富文本底飞单元格编辑
/// </summary>
public class RichTextScrollElementCellEdit : RichTextListCellEdit
{
/// <summary>
/// 值改变时触发
/// </summary>
protected override void EditValueChanged(object sender, EditValueChangedEventArgs e)
{
// 是否需要发送至预览
if (!this.IsSendToPreview)
return;
// 预览连接不存在
if (ApplicationDomainEx.PreviewConn == null)
return;
DevExpress.Xpf.Grid.EditGridCellData cellData = this.DataContext as DevExpress.Xpf.Grid.EditGridCellData;
if (cellData == null)
return;
GridColumnControlFieldDefinition columnDefinition = cellData.Column.DataContext as GridColumnControlFieldDefinition;
if (columnDefinition == null)
return;
string richText = $"{RICH_TEXT_LEFT}{e.NewValue?.ToString() ?? string.Empty}{RICH_TEXT_RIGHT}";
// 设置值
IDictionary<string, object> dic = cellData.Row as IDictionary<string, object>;
dic[columnDefinition.FieldName] = richText;
// 向Viz发送指令
//this.VizCommandControlObjectService.SetControlObjectListValue(
// ApplicationDomainEx.PreviewConn,
// columnDefinition.ControlObject.TreeNodePath,
// columnDefinition.ControlField.FieldIdentifier,
// cellData.RowData.RowHandle.Value,
// columnDefinition.FieldName,
// richText);
}
}
}
using DevExpress.Xpf.Editors;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Package.Domain;
namespace VIZ.Package.Module
{
/// <summary>
///
/// </summary>
public class TextScrollElementCellEdit : TextListCellEdit
{
/// <summary>
/// 值改变时触发
/// </summary>
protected override void EditValueChanged(object sender, EditValueChangedEventArgs e)
{
// 是否需要发送至预览
if (!this.IsSendToPreview)
return;
// 预览连接不存在
if (ApplicationDomainEx.PreviewConn == null)
return;
DevExpress.Xpf.Grid.EditGridCellData cellData = this.DataContext as DevExpress.Xpf.Grid.EditGridCellData;
if (cellData == null)
return;
GridColumnControlFieldDefinition columnDefinition = cellData.Column.DataContext as GridColumnControlFieldDefinition;
if (columnDefinition == null)
return;
// 设置值
IDictionary<string, object> dic = cellData.Row as IDictionary<string, object>;
dic[columnDefinition.FieldName] = e.NewValue?.ToString() ?? string.Empty;
// 向Viz发送指令
//this.VizCommandControlObjectService.SetControlObjectListValue(
// ApplicationDomainEx.PreviewConn,
// columnDefinition.ControlObject.TreeNodePath,
// columnDefinition.ControlField.FieldIdentifier,
// cellData.RowData.RowHandle.Value,
// columnDefinition.FieldName,
// e.NewValue?.ToString() ?? string.Empty);
}
}
}
using DevExpress.Xpf.Grid;
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using VIZ.Package.Domain;
using VIZ.Package.Storage;
namespace VIZ.Package.Module
{
/// <summary>
/// 底飞编辑面板单元格模板选择器
/// </summary>
public class ScrollElementEditPanelCellTemplateSelector : DataTemplateSelector
{
/// <summary>
/// 文本模板
/// </summary>
public DataTemplate TextDataTemplate { get; set; }
/// <summary>
/// 富文本模板
/// </summary>
public DataTemplate RichTextDataTemplate { get; set; }
/// <summary>
/// 图片模板
/// </summary>
public DataTemplate ImageDataTemplate { get; set; }
/// <summary>
/// 筛选模板
/// </summary>
/// <param name="item">项</param>
/// <param name="container">容器</param>
/// <returns>数据模板</returns>
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
GridCellData data = (GridCellData)item;
GridColumnScrollElementFieldDefinition definition = data.Column.DataContext as GridColumnScrollElementFieldDefinition;
if (definition == null)
return null;
switch (definition.Type)
{
case VizControlFieldType.none: return null;
case VizControlFieldType.text: return this.TextDataTemplate;
case VizControlFieldType.richtext: return this.RichTextDataTemplate;
case VizControlFieldType.image: return this.ImageDataTemplate;
default: return null;
}
}
}
}
\ No newline at end of file
......@@ -17,19 +17,71 @@
mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="800">
<UserControl.Resources>
<fcore:Bitmap2ImageSourceConverter x:Key="Bitmap2ImageSourceConverter"></fcore:Bitmap2ImageSourceConverter>
</UserControl.Resources>
<!-- 行号转化器 -->
<resource:RowHandleConverter x:Key="RowHandleConverter"></resource:RowHandleConverter>
<!-- 富文本转文本 -->
<resource:RichText2TextConverter x:Key="RichText2TextConverter"></resource:RichText2TextConverter>
<!-- 单元格编辑模板选择器 -->
<local:ScrollElementEditPanelCellTemplateSelector x:Key="CellTemplateSelector">
<!-- 富文本 -->
<local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value,Converter={StaticResource RichText2TextConverter},Mode=OneWay}" Margin="3,0,3,0"
TextTrimming="CharacterEllipsis" TextWrapping="NoWrap" VerticalAlignment="Center"></TextBlock>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
<!-- 图片 -->
<local:ScrollElementEditPanelCellTemplateSelector.ImageDataTemplate>
<DataTemplate>
<local:ImageListCellEdit></local:ImageListCellEdit>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.ImageDataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector>
<!-- 单元格编辑模板选择器 -->
<local:ScrollElementEditPanelCellTemplateSelector x:Key="CellEditTemplateSelector">
<!-- 文本 -->
<local:ScrollElementEditPanelCellTemplateSelector.TextDataTemplate>
<DataTemplate>
<local:TextListCellEdit></local:TextListCellEdit>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.TextDataTemplate>
<!-- 富文本 -->
<local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
<DataTemplate>
<local:RichTextScrollElementCellEdit></local:RichTextScrollElementCellEdit>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector>
<!-- 列定义模板 -->
<DataTemplate x:Key="ColumnTemplate">
<ContentControl>
<dxg:GridColumn FieldName="{Binding FieldName}"
MinWidth="320" Width="Auto"
Header="{Binding Header}" ReadOnly="{Binding ReadOnly}"
CellTemplateSelector="{StaticResource CellTemplateSelector}"
CellEditTemplateSelector="{StaticResource CellEditTemplateSelector}"
AllowEditing="{Binding AllowEditing}"
AllowResizing="True"
AllowSorting="False" AllowColumnFiltering="False"/>
</ContentControl>
</DataTemplate>
</UserControl.Resources>
<Grid VerticalAlignment="Stretch" AllowDrop="True">
<Grid.RowDefinitions>
<RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<!-- 模板 -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="60"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
......@@ -43,6 +95,36 @@
</Grid>
<!-- 数据 -->
<dxg:GridControl ItemsSource="{Binding Path=ItemsSource}" ShowBorder="True" Grid.Row="1" AllowDrop="True"
ColumnsSource="{Binding Path=Columns}" SelectionMode="Cell" Margin="10"
SelectedItem="{Binding Path=SelectedValue}"
ColumnGeneratorTemplate="{StaticResource ColumnTemplate}">
<dxmvvm:Interaction.Behaviors>
<dxmvvm:EventToCommand EventName="SelectionChanged" PassEventArgsToCommand="True" Command="{Binding Path=SelectionChangedCommand}"></dxmvvm:EventToCommand>
</dxmvvm:Interaction.Behaviors>
<dxg:GridControl.ContextMenu>
<ContextMenu>
<MenuItem Header="添加" Command="{Binding Path=PlacementTarget.DataContext.AddCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
<MenuItem Header="删除" Command="{Binding Path=PlacementTarget.DataContext.RemoveCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
</ContextMenu>
</dxg:GridControl.ContextMenu>
<dxg:GridControl.View>
<dxg:TableView x:Name="tabView" AllowEditing="True" ShowIndicator="False"
IsColumnMenuEnabled="False"
NavigationStyle="Cell" EditorShowMode="MouseDown" ShowVerticalLines="True"
ShowHorizontalLines="True"
AlternateRowBackground="#05ffffff"
ShowGroupPanel="False" RowMinHeight="24"
AllowDrop="True"
ShowBandsPanel="False"
ShowTotalSummary="False"
ShowFixedTotalSummary="False"
ShowDragDropHint="False"
ShowTargetInfoInDragDropHint="false">
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
</UserControl>
......@@ -225,7 +225,7 @@ namespace VIZ.Package.Module
/// </summary>
public void TryUpdateControlFieldListValue()
{
if (this.SelectedControlField == null || this.SelectedControlField.Type != VizControlFieldType.list)
if (this.SelectedControlField == null || this.SelectedControlField.Type != VizControlFieldType.list && this.SelectedControlField.Type != VizControlFieldType.scroll_elements)
return;
IFieldEditService service = ApplicationDomainEx.ServiceManager.GetService<IFieldEditService>(ViewServiceKeys.FIELD_EDIT_SERVICE);
......
......@@ -21,7 +21,7 @@
<!-- 系统版本 -->
<TextBlock Text="系统版本:" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Row="1" Grid.Column="0" Margin="0,0,10,0"></TextBlock>
<TextBlock Text="V1.1.0.03141048_beta" VerticalAlignment="Center" HorizontalAlignment="Left"
<TextBlock Text="V1.1.0.03171405_beta" VerticalAlignment="Center" HorizontalAlignment="Left"
Grid.Row="1" Grid.Column="1"></TextBlock>
</Grid>
</dx:ThemedWindow>
......@@ -115,6 +115,10 @@
<Compile Include="ControlObject\FieldEdit\Edit\ListEdit\CellEdit\FontListCellEdit.xaml.cs">
<DependentUpon>FontListCellEdit.xaml</DependentUpon>
</Compile>
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\CellEdit\ImageScrollElementCellEdit.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\CellEdit\RichTextScrollElementCellEdit.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\CellEdit\TextScrollElementCellEdit.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\ScrollElementEditPanelCellTemplateSelector.cs" />
<Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\ScrollElementsEditPanel.xaml.cs">
<DependentUpon>ScrollElementsEditPanel.xaml</DependentUpon>
</Compile>
......
......@@ -102,9 +102,11 @@
<Compile Include="DB\RecordLog\RecordLogService.cs" />
<Compile Include="DB\RecordLog\RecordLogWriter.cs" />
<Compile Include="DB\Registry\RegistryService.cs" />
<Compile Include="DB\ScrollElement\ScrollElementService.cs" />
<Compile Include="Logic\Plugin\PluginService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Viz\VizCommandControlObjectService.Custom.cs" />
<Compile Include="Viz\VizCommandElementService.cs" />
<Compile Include="Viz\VizControlObjectDownloadService.cs" />
<Compile Include="Viz\GHResourceService.cs" />
<Compile Include="Viz\GHService.cs" />
......
......@@ -30,7 +30,7 @@ namespace VIZ.Package.Service
/// <remarks>
/// 不启用编辑则可以直接在GridControl的单元格中直径进行值修改
/// </remarks>
private static readonly List<VizControlFieldType> ALLOW_EDITING_FALSE_TYPES = new List<VizControlFieldType>
public static readonly List<VizControlFieldType> ALLOW_EDITING_FALSE_TYPES = new List<VizControlFieldType>
{
VizControlFieldType.none,
VizControlFieldType.boolean,
......@@ -501,6 +501,35 @@ namespace VIZ.Package.Service
conn.EndpointManager.Send(string.Format(VizEngineCommands.SCRIPT_INVOKE, ApplicationConstants.VIZ_COMMAND_CUSTOM_CONTROL_FIELD_SET, command));
}
/// <summary>
/// 根据控制字段实体创建控制对象字段模型
/// </summary>
/// <param name="entity">控制字段实体</param>
/// <returns>控制对象字段模型</returns>
public ControlFieldNodeModel CreateControlFieldNodeModeFromEntity(ControlFieldEntity entity)
{
if (string.IsNullOrWhiteSpace(entity.FieldDetail))
return null;
string[] pars = entity.FieldDetail.Split(':');
string num = pars[1].Split('*').FirstOrDefault();
ControlFieldNodeModel node = new ControlFieldNodeModel();
node.FieldDetail = entity.FieldDetail;
node.FieldIdentifier = pars[0];
node.Num = num;
node.TypeSchema = pars[2];
node.Type = this.GetControlFieldType(node.TypeSchema);
node.Value = entity.Value;
if (pars.Length >= 7)
{
node.Description = pars[6];
}
return node;
}
/// <summary>
/// 获取控制字段类型
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VIZ.Package.Service
{
/// <summary>
/// Viz元素命令服务
/// </summary>
public class VizCommandElementService
{
}
}
......@@ -8,9 +8,9 @@ using System.Threading.Tasks;
namespace VIZ.Package.Storage
{
/// <summary>
/// 底飞字段值
/// 底飞数据包
/// </summary>
public class ScrollElementFieldValue
public class ScrollElementPackageEntity
{
/// <summary>
/// 编号
......@@ -19,23 +19,23 @@ namespace VIZ.Package.Storage
public int Id { get; set; }
/// <summary>
/// 模板ID或者页ID
/// 模板页ID
/// </summary>
public Guid TemplateOrPageID { get; set; }
/// <summary>
/// 元素编号
/// 关联底飞字段
/// </summary>
public string ElementNum { get; set; }
public string FieldIdentifier { get; set; }
/// <summary>
/// 字段名称
/// 模板场景路径
/// </summary>
public string FieldIdentifier { get; set; }
public string TemplateScenePath { get; set; }
/// <summary>
/// 字段值
/// 模板字段
/// </summary>
public string Value { get; set; }
public List<ControlFieldEntity> TemplateFields { get; set; } = new List<ControlFieldEntity>();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VIZ.Package.Storage
{
/// <summary>
/// 底飞元素根节点标志
/// </summary>
public enum VizScrollElementRootTag
{
/// <summary>
/// 全值更新
/// </summary>
entry,
/// <summary>
/// 更新部分值
/// </summary>
update,
/// <summary>
/// 插入值
/// </summary>
insert
}
}
......@@ -40,8 +40,7 @@ namespace VIZ.Package.Storage
this.ControlField = this.Database.GetCollection<ControlFieldEntity>();
this.ControlObject = this.Database.GetCollection<ControlObjectEntity>();
this.SceneThumbnailCache = this.Database.GetStorage<Guid>("_SceneThumbnailFiles", "_SceneThumbnailChunks");
this.ScrollElementTemplateControlField = this.Database.GetCollection<ControlFieldEntity>("ScrollElementTemplate");
this.ScrollElementFieldValue = this.Database.GetCollection<ScrollElementFieldValue>();
this.ScrollElementPackage = this.Database.GetCollection<ScrollElementPackageEntity>();
}
/// <summary>
......@@ -80,14 +79,9 @@ namespace VIZ.Package.Storage
public ILiteStorage<Guid> SceneThumbnailCache { get; private set; }
/// <summary>
/// 底飞模板字段
/// 底飞数据包
/// </summary>
public ILiteCollection<ControlFieldEntity> ScrollElementTemplateControlField { get; private set; }
/// <summary>
/// 底飞字段值
/// </summary>
public ILiteCollection<ScrollElementFieldValue> ScrollElementFieldValue { get; private set; }
public ILiteCollection<ScrollElementPackageEntity> ScrollElementPackage { get; private set; }
/// <summary>
/// 销毁
......@@ -100,8 +94,7 @@ namespace VIZ.Package.Storage
this.ControlField = null;
this.ControlObject = null;
this.SceneThumbnailCache = null;
this.ScrollElementTemplateControlField = null;
this.ScrollElementFieldValue = null;
this.ScrollElementPackage = null;
this.Database?.Dispose();
}
......
......@@ -107,7 +107,7 @@
<Compile Include="Entity\Page\PageGroupEntity.cs" />
<Compile Include="Entity\Page\PageTemplateEntity.cs" />
<Compile Include="Entity\Config\VizConfigEntity.cs" />
<Compile Include="Entity\ScrollElement\ScrollElementFieldValue.cs" />
<Compile Include="Entity\ScrollElement\ScrollElementPackageEntity.cs" />
<Compile Include="Enum\EngineFullType.cs" />
<Compile Include="Enum\EngineType.cs" />
<Compile Include="Enum\PageType.cs" />
......@@ -119,6 +119,7 @@
<Compile Include="Enum\VizLayer.cs" />
<Compile Include="Enum\EnginePreviewMode.cs" />
<Compile Include="Enum\VizScene.cs" />
<Compile Include="Enum\VizScrollElementRootTag.cs" />
<Compile Include="Ini\LogConfig.cs" />
<Compile Include="Ini\VizConfig.cs" />
<Compile Include="LocalDbContext.cs" />
......
......@@ -14,6 +14,21 @@ namespace VIZ.Package.Storage
public class ControlObject_Element_Node : IXmlSerialize
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 是否完成
/// </summary>
public bool? Complete { get; set; }
/// <summary>
/// 关联场景
/// </summary>
public string Scene { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
......@@ -24,12 +39,20 @@ namespace VIZ.Package.Storage
public List<ControlObject_Entry_Node> Entrys { get; set; } = new List<ControlObject_Entry_Node>();
/// <summary>
/// 字段定义
/// </summary>
public List<ControlObject_Schema_Node> Schemas { get; set; } = new List<ControlObject_Schema_Node>();
/// <summary>
/// 从XElement节点获取数据
/// </summary>
/// <param name="element">XElement节点</param>
public void FromXmlElement(XElement element)
{
this.Name = element.GetAttributeValue<string>("name");
this.Description = element.GetAttributeValue<string>("description");
this.Complete = element.GetAttributeValue<bool?>("complete");
this.Scene = element.GetAttributeValue<string>("scene");
foreach (var item in element.Elements("entry"))
{
......@@ -38,6 +61,14 @@ namespace VIZ.Package.Storage
this.Entrys.Add(entry);
}
foreach (var item in element.Elements("schema"))
{
ControlObject_Schema_Node schema = new ControlObject_Schema_Node();
schema.FromXmlElement(item);
this.Schemas.Add(schema);
}
}
/// <summary>
......@@ -46,10 +77,27 @@ namespace VIZ.Package.Storage
public XElement ToXmlElement()
{
XElement element = new XElement("element");
element.SetAttributeValue("description", this.Description);
element.SetAttributeValueIfValueNotNull("name", this.Name);
element.SetAttributeValueIfValueNotNull("description", this.Description);
element.SetAttributeValueIfValueNotNull("complete", this.Complete);
element.SetAttributeValueIfValueNotNull("scene", this.Scene);
foreach (var item in this.Entrys)
{
element.Add(item.ToXmlElement());
XElement entry = item.ToXmlElement();
if (entry == null)
continue;
element.Add(entry);
}
foreach (var item in this.Schemas)
{
XElement schema = item.ToXmlElement();
if (schema == null)
continue;
element.Add(schema);
}
return element;
......
......@@ -69,10 +69,7 @@ namespace VIZ.Package.Storage
public XElement ToXmlElement()
{
XElement entry = new XElement("entry");
if (!string.IsNullOrWhiteSpace(this.Name))
{
entry.SetAttributeValue("name", this.Name);
}
entry.SetAttributeValueIfValueNotNull("name", this.Name);
if (this.Value != null)
{
......
......@@ -30,6 +30,11 @@ namespace VIZ.Package.Storage
public string Description { get; set; }
/// <summary>
/// 位置
/// </summary>
public string Location { get; set; }
/// <summary>
/// 定义
/// </summary>
public ControlObject_Schema_Node Schema { get; set; }
......@@ -43,6 +48,7 @@ namespace VIZ.Package.Storage
this.Name = element.GetAttributeValue<string>("name");
this.Type = element.GetAttributeValue<string>("type");
this.Description = element.GetAttributeValue<string>("description");
this.Location = element.GetAttributeValue<string>("location");
var schema = element.Element("schema");
if (schema == null)
......@@ -57,7 +63,13 @@ namespace VIZ.Package.Storage
/// </summary>
public XElement ToXmlElement()
{
throw new NotImplementedException();
XElement entry = new XElement("field");
entry.SetAttributeValueIfValueNotNull("name", this.Name);
entry.SetAttributeValueIfValueNotNull("type", this.Type);
entry.SetAttributeValueIfValueNotNull("description", this.Description);
entry.SetAttributeValueIfValueNotNull("location", this.Location);
return entry;
}
}
}
......@@ -37,7 +37,17 @@ namespace VIZ.Package.Storage
/// </summary>
public XElement ToXmlElement()
{
throw new NotImplementedException();
XElement element = new XElement("schema");
if (this.Fields.Count == 0)
return element;
foreach (var item in this.Fields)
{
element.Add(item.ToXmlElement());
}
return element;
}
}
}
......@@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "00-Doc", "00-Doc", "{4F55B183-4696-461C-8284-040FA7472C39}"
ProjectSection(SolutionItems) = preProject
Doc\底飞_insert.xml = Doc\底飞_insert.xml
Doc\底飞_set.xml = Doc\底飞_set.xml
Doc\底飞_update.xml = Doc\底飞_update.xml
Doc\控制对象自定义字段.txt = Doc\控制对象自定义字段.txt
EndProjectSection
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment