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"?> <?xml version="1.0" encoding="utf-8"?>
<update> <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="viz">
<entry name="location"></entry> <entry name="location"/>
<entry name="front"> <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>
<entry name="load">scene</entry> <entry name="load">scene</entry>
<entry name="viz_layer"></entry> <entry name="viz_layer"/>
<entry name="use_all_directors">yes</entry> <entry name="use_all_directors">yes</entry>
<entry name="fonts"></entry>
</entry> </entry>
<ref name="master_template">/storage/shows/{ABCB973C-3A85-4DC2-BF2B-2C01BD1433E7}/mastertemplates/YC_FeiGun_text</ref>
<entry name="default_alternatives"></entry>
<schema> <schema>
<field name="1" type="richtext" description="FZZongYi-M05S-Regular" singleline="True" location="1/1"/> <field description="FZZongYi-M05S-Regular" location="1/2" singleline="True" type="richtext" name="1"/>
<field name="scroll_data.space_before" type="float"/> <field description="Image1" location="1/1" type="image" name="Image1"/>
<field name="scroll_data.space_after" type="float"/> <field type="float" name="scroll_data.space_before"/>
<field type="float" name="scroll_data.space_after"/>
</schema> </schema>
<entry name="data"> <entry name="data">
<entry name="1" >12345678</entry> <entry name="1">22222222</entry>
<entry name="scroll_data.space_before" >0</entry> <entry name="Image1">IMAGE*TITLES/2022/YC/mu_ad</entry>
<entry name="scroll_data.space_after" >0</entry> <entry name="scroll_data.space_before">0</entry>
</entry> <entry name="scroll_data.space_after">0</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> </entry>
</element> </element>
</update> </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 ...@@ -14,7 +14,7 @@ namespace VIZ.Package.Domain
/// <summary> /// <summary>
/// 获取场景信息 /// 获取场景信息
/// </summary> /// </summary>
/// <param name="pageBase">场景模型基类</param> /// <param name="pageBase">模型基类</param>
/// <returns>场景信息</returns> /// <returns>场景信息</returns>
public static SceneInfoModel GetSceneInfo(this PageModelBase pageBase) public static SceneInfoModel GetSceneInfo(this PageModelBase pageBase)
{ {
...@@ -32,17 +32,31 @@ namespace VIZ.Package.Domain ...@@ -32,17 +32,31 @@ namespace VIZ.Package.Domain
} }
} }
/// <summary> /// <summary>
/// 获取场景父级 /// 获取场景父级
/// </summary> /// </summary>
/// <param name="pageBase">场景父级</param> /// <param name="pageBase">页模型基类</param>
/// <returns>场景父级</returns> /// <returns>场景父级</returns>
public static string GetSceneParent(this PageModelBase pageBase) public static string GetSceneParent(this PageModelBase pageBase)
{ {
string parent = ApplicationDomainEx.CurrentPage.ScenePath.Substring(0, ApplicationDomainEx.CurrentPage.ScenePath.LastIndexOf('/')); string parent = ApplicationDomainEx.CurrentPage.ScenePath.Substring(0, ApplicationDomainEx.CurrentPage.ScenePath.LastIndexOf('/'));
return parent; 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 @@ ...@@ -77,6 +77,7 @@
<Compile Include="ApplicationDomainEx.cs" /> <Compile Include="ApplicationDomainEx.cs" />
<Compile Include="Core\GridColumnControlFieldDefinition.cs" /> <Compile Include="Core\GridColumnControlFieldDefinition.cs" />
<Compile Include="Core\GridColumnDefinition.cs" /> <Compile Include="Core\GridColumnDefinition.cs" />
<Compile Include="Core\GridColumnScrollElementFieldDefinition.cs" />
<Compile Include="Core\IHotkeySupport.cs" /> <Compile Include="Core\IHotkeySupport.cs" />
<Compile Include="Enum\ConnGroupStatus.cs" /> <Compile Include="Enum\ConnGroupStatus.cs" />
<Compile Include="Enum\MenuItemType.cs" /> <Compile Include="Enum\MenuItemType.cs" />
......
...@@ -44,7 +44,7 @@ namespace VIZ.Package.Module ...@@ -44,7 +44,7 @@ namespace VIZ.Package.Module
/// <summary> /// <summary>
/// 值改变时触发 /// 值改变时触发
/// </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) if (!this.IsSendToPreview)
......
...@@ -54,7 +54,7 @@ namespace VIZ.Package.Module ...@@ -54,7 +54,7 @@ namespace VIZ.Package.Module
/// <summary> /// <summary>
/// 值改变时触发 /// 值改变时触发
/// </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) if (!this.IsSendToPreview)
......
...@@ -44,7 +44,7 @@ namespace VIZ.Package.Module ...@@ -44,7 +44,7 @@ namespace VIZ.Package.Module
/// <summary> /// <summary>
/// 值改变时触发 /// 值改变时触发
/// </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) 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 @@ ...@@ -17,19 +17,71 @@
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="400" d:DesignWidth="800"> d:DesignHeight="400" d:DesignWidth="800">
<UserControl.Resources> <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 VerticalAlignment="Stretch" AllowDrop="True">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="40"></RowDefinition> <RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!-- 模板 --> <!-- 模板 -->
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="60"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition> <ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
...@@ -43,6 +95,36 @@ ...@@ -43,6 +95,36 @@
</Grid> </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> </Grid>
</UserControl> </UserControl>
...@@ -225,7 +225,7 @@ namespace VIZ.Package.Module ...@@ -225,7 +225,7 @@ namespace VIZ.Package.Module
/// </summary> /// </summary>
public void TryUpdateControlFieldListValue() 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; return;
IFieldEditService service = ApplicationDomainEx.ServiceManager.GetService<IFieldEditService>(ViewServiceKeys.FIELD_EDIT_SERVICE); IFieldEditService service = ApplicationDomainEx.ServiceManager.GetService<IFieldEditService>(ViewServiceKeys.FIELD_EDIT_SERVICE);
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<!-- 系统版本 --> <!-- 系统版本 -->
<TextBlock Text="系统版本:" VerticalAlignment="Center" HorizontalAlignment="Right" <TextBlock Text="系统版本:" VerticalAlignment="Center" HorizontalAlignment="Right"
Grid.Row="1" Grid.Column="0" Margin="0,0,10,0"></TextBlock> 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.Row="1" Grid.Column="1"></TextBlock>
</Grid> </Grid>
</dx:ThemedWindow> </dx:ThemedWindow>
...@@ -115,6 +115,10 @@ ...@@ -115,6 +115,10 @@
<Compile Include="ControlObject\FieldEdit\Edit\ListEdit\CellEdit\FontListCellEdit.xaml.cs"> <Compile Include="ControlObject\FieldEdit\Edit\ListEdit\CellEdit\FontListCellEdit.xaml.cs">
<DependentUpon>FontListCellEdit.xaml</DependentUpon> <DependentUpon>FontListCellEdit.xaml</DependentUpon>
</Compile> </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"> <Compile Include="ControlObject\FieldEdit\Edit\ScrollElementsEdit\ScrollElementsEditPanel.xaml.cs">
<DependentUpon>ScrollElementsEditPanel.xaml</DependentUpon> <DependentUpon>ScrollElementsEditPanel.xaml</DependentUpon>
</Compile> </Compile>
......
...@@ -102,9 +102,11 @@ ...@@ -102,9 +102,11 @@
<Compile Include="DB\RecordLog\RecordLogService.cs" /> <Compile Include="DB\RecordLog\RecordLogService.cs" />
<Compile Include="DB\RecordLog\RecordLogWriter.cs" /> <Compile Include="DB\RecordLog\RecordLogWriter.cs" />
<Compile Include="DB\Registry\RegistryService.cs" /> <Compile Include="DB\Registry\RegistryService.cs" />
<Compile Include="DB\ScrollElement\ScrollElementService.cs" />
<Compile Include="Logic\Plugin\PluginService.cs" /> <Compile Include="Logic\Plugin\PluginService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Viz\VizCommandControlObjectService.Custom.cs" /> <Compile Include="Viz\VizCommandControlObjectService.Custom.cs" />
<Compile Include="Viz\VizCommandElementService.cs" />
<Compile Include="Viz\VizControlObjectDownloadService.cs" /> <Compile Include="Viz\VizControlObjectDownloadService.cs" />
<Compile Include="Viz\GHResourceService.cs" /> <Compile Include="Viz\GHResourceService.cs" />
<Compile Include="Viz\GHService.cs" /> <Compile Include="Viz\GHService.cs" />
......
...@@ -30,7 +30,7 @@ namespace VIZ.Package.Service ...@@ -30,7 +30,7 @@ namespace VIZ.Package.Service
/// <remarks> /// <remarks>
/// 不启用编辑则可以直接在GridControl的单元格中直径进行值修改 /// 不启用编辑则可以直接在GridControl的单元格中直径进行值修改
/// </remarks> /// </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.none,
VizControlFieldType.boolean, VizControlFieldType.boolean,
...@@ -501,6 +501,35 @@ namespace VIZ.Package.Service ...@@ -501,6 +501,35 @@ namespace VIZ.Package.Service
conn.EndpointManager.Send(string.Format(VizEngineCommands.SCRIPT_INVOKE, ApplicationConstants.VIZ_COMMAND_CUSTOM_CONTROL_FIELD_SET, command)); 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> /// <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; ...@@ -8,9 +8,9 @@ using System.Threading.Tasks;
namespace VIZ.Package.Storage namespace VIZ.Package.Storage
{ {
/// <summary> /// <summary>
/// 底飞字段值 /// 底飞数据包
/// </summary> /// </summary>
public class ScrollElementFieldValue public class ScrollElementPackageEntity
{ {
/// <summary> /// <summary>
/// 编号 /// 编号
...@@ -19,23 +19,23 @@ namespace VIZ.Package.Storage ...@@ -19,23 +19,23 @@ namespace VIZ.Package.Storage
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 模板ID或者页ID /// 模板页ID
/// </summary> /// </summary>
public Guid TemplateOrPageID { get; set; } public Guid TemplateOrPageID { get; set; }
/// <summary> /// <summary>
/// 元素编号 /// 关联底飞字段
/// </summary> /// </summary>
public string ElementNum { get; set; } public string FieldIdentifier { get; set; }
/// <summary> /// <summary>
/// 字段名称 /// 模板场景路径
/// </summary> /// </summary>
public string FieldIdentifier { get; set; } public string TemplateScenePath { get; set; }
/// <summary> /// <summary>
/// 字段值 /// 模板字段
/// </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 ...@@ -40,8 +40,7 @@ namespace VIZ.Package.Storage
this.ControlField = this.Database.GetCollection<ControlFieldEntity>(); this.ControlField = this.Database.GetCollection<ControlFieldEntity>();
this.ControlObject = this.Database.GetCollection<ControlObjectEntity>(); this.ControlObject = this.Database.GetCollection<ControlObjectEntity>();
this.SceneThumbnailCache = this.Database.GetStorage<Guid>("_SceneThumbnailFiles", "_SceneThumbnailChunks"); this.SceneThumbnailCache = this.Database.GetStorage<Guid>("_SceneThumbnailFiles", "_SceneThumbnailChunks");
this.ScrollElementTemplateControlField = this.Database.GetCollection<ControlFieldEntity>("ScrollElementTemplate"); this.ScrollElementPackage = this.Database.GetCollection<ScrollElementPackageEntity>();
this.ScrollElementFieldValue = this.Database.GetCollection<ScrollElementFieldValue>();
} }
/// <summary> /// <summary>
...@@ -80,14 +79,9 @@ namespace VIZ.Package.Storage ...@@ -80,14 +79,9 @@ namespace VIZ.Package.Storage
public ILiteStorage<Guid> SceneThumbnailCache { get; private set; } public ILiteStorage<Guid> SceneThumbnailCache { get; private set; }
/// <summary> /// <summary>
/// 底飞模板字段 /// 底飞数据包
/// </summary> /// </summary>
public ILiteCollection<ControlFieldEntity> ScrollElementTemplateControlField { get; private set; } public ILiteCollection<ScrollElementPackageEntity> ScrollElementPackage { get; private set; }
/// <summary>
/// 底飞字段值
/// </summary>
public ILiteCollection<ScrollElementFieldValue> ScrollElementFieldValue { get; private set; }
/// <summary> /// <summary>
/// 销毁 /// 销毁
...@@ -100,8 +94,7 @@ namespace VIZ.Package.Storage ...@@ -100,8 +94,7 @@ namespace VIZ.Package.Storage
this.ControlField = null; this.ControlField = null;
this.ControlObject = null; this.ControlObject = null;
this.SceneThumbnailCache = null; this.SceneThumbnailCache = null;
this.ScrollElementTemplateControlField = null; this.ScrollElementPackage = null;
this.ScrollElementFieldValue = null;
this.Database?.Dispose(); this.Database?.Dispose();
} }
......
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
<Compile Include="Entity\Page\PageGroupEntity.cs" /> <Compile Include="Entity\Page\PageGroupEntity.cs" />
<Compile Include="Entity\Page\PageTemplateEntity.cs" /> <Compile Include="Entity\Page\PageTemplateEntity.cs" />
<Compile Include="Entity\Config\VizConfigEntity.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\EngineFullType.cs" />
<Compile Include="Enum\EngineType.cs" /> <Compile Include="Enum\EngineType.cs" />
<Compile Include="Enum\PageType.cs" /> <Compile Include="Enum\PageType.cs" />
...@@ -119,6 +119,7 @@ ...@@ -119,6 +119,7 @@
<Compile Include="Enum\VizLayer.cs" /> <Compile Include="Enum\VizLayer.cs" />
<Compile Include="Enum\EnginePreviewMode.cs" /> <Compile Include="Enum\EnginePreviewMode.cs" />
<Compile Include="Enum\VizScene.cs" /> <Compile Include="Enum\VizScene.cs" />
<Compile Include="Enum\VizScrollElementRootTag.cs" />
<Compile Include="Ini\LogConfig.cs" /> <Compile Include="Ini\LogConfig.cs" />
<Compile Include="Ini\VizConfig.cs" /> <Compile Include="Ini\VizConfig.cs" />
<Compile Include="LocalDbContext.cs" /> <Compile Include="LocalDbContext.cs" />
......
...@@ -14,6 +14,21 @@ namespace VIZ.Package.Storage ...@@ -14,6 +14,21 @@ namespace VIZ.Package.Storage
public class ControlObject_Element_Node : IXmlSerialize public class ControlObject_Element_Node : IXmlSerialize
{ {
/// <summary> /// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 是否完成
/// </summary>
public bool? Complete { get; set; }
/// <summary>
/// 关联场景
/// </summary>
public string Scene { get; set; }
/// <summary>
/// 描述 /// 描述
/// </summary> /// </summary>
public string Description { get; set; } public string Description { get; set; }
...@@ -24,12 +39,20 @@ namespace VIZ.Package.Storage ...@@ -24,12 +39,20 @@ namespace VIZ.Package.Storage
public List<ControlObject_Entry_Node> Entrys { get; set; } = new List<ControlObject_Entry_Node>(); public List<ControlObject_Entry_Node> Entrys { get; set; } = new List<ControlObject_Entry_Node>();
/// <summary> /// <summary>
/// 字段定义
/// </summary>
public List<ControlObject_Schema_Node> Schemas { get; set; } = new List<ControlObject_Schema_Node>();
/// <summary>
/// 从XElement节点获取数据 /// 从XElement节点获取数据
/// </summary> /// </summary>
/// <param name="element">XElement节点</param> /// <param name="element">XElement节点</param>
public void FromXmlElement(XElement element) public void FromXmlElement(XElement element)
{ {
this.Name = element.GetAttributeValue<string>("name");
this.Description = element.GetAttributeValue<string>("description"); 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")) foreach (var item in element.Elements("entry"))
{ {
...@@ -38,6 +61,14 @@ namespace VIZ.Package.Storage ...@@ -38,6 +61,14 @@ namespace VIZ.Package.Storage
this.Entrys.Add(entry); 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> /// <summary>
...@@ -46,10 +77,27 @@ namespace VIZ.Package.Storage ...@@ -46,10 +77,27 @@ namespace VIZ.Package.Storage
public XElement ToXmlElement() public XElement ToXmlElement()
{ {
XElement element = new XElement("element"); 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) 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; return element;
......
...@@ -69,10 +69,7 @@ namespace VIZ.Package.Storage ...@@ -69,10 +69,7 @@ namespace VIZ.Package.Storage
public XElement ToXmlElement() public XElement ToXmlElement()
{ {
XElement entry = new XElement("entry"); XElement entry = new XElement("entry");
if (!string.IsNullOrWhiteSpace(this.Name)) entry.SetAttributeValueIfValueNotNull("name", this.Name);
{
entry.SetAttributeValue("name", this.Name);
}
if (this.Value != null) if (this.Value != null)
{ {
......
...@@ -30,6 +30,11 @@ namespace VIZ.Package.Storage ...@@ -30,6 +30,11 @@ namespace VIZ.Package.Storage
public string Description { get; set; } public string Description { get; set; }
/// <summary> /// <summary>
/// 位置
/// </summary>
public string Location { get; set; }
/// <summary>
/// 定义 /// 定义
/// </summary> /// </summary>
public ControlObject_Schema_Node Schema { get; set; } public ControlObject_Schema_Node Schema { get; set; }
...@@ -43,6 +48,7 @@ namespace VIZ.Package.Storage ...@@ -43,6 +48,7 @@ namespace VIZ.Package.Storage
this.Name = element.GetAttributeValue<string>("name"); this.Name = element.GetAttributeValue<string>("name");
this.Type = element.GetAttributeValue<string>("type"); this.Type = element.GetAttributeValue<string>("type");
this.Description = element.GetAttributeValue<string>("description"); this.Description = element.GetAttributeValue<string>("description");
this.Location = element.GetAttributeValue<string>("location");
var schema = element.Element("schema"); var schema = element.Element("schema");
if (schema == null) if (schema == null)
...@@ -57,7 +63,13 @@ namespace VIZ.Package.Storage ...@@ -57,7 +63,13 @@ namespace VIZ.Package.Storage
/// </summary> /// </summary>
public XElement ToXmlElement() 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 ...@@ -37,7 +37,17 @@ namespace VIZ.Package.Storage
/// </summary> /// </summary>
public XElement ToXmlElement() 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 ...@@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "00-Doc", "00-Doc", "{4F55B183-4696-461C-8284-040FA7472C39}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "00-Doc", "00-Doc", "{4F55B183-4696-461C-8284-040FA7472C39}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
Doc\底飞_insert.xml = Doc\底飞_insert.xml Doc\底飞_insert.xml = Doc\底飞_insert.xml
Doc\底飞_set.xml = Doc\底飞_set.xml
Doc\底飞_update.xml = Doc\底飞_update.xml Doc\底飞_update.xml = Doc\底飞_update.xml
Doc\控制对象自定义字段.txt = Doc\控制对象自定义字段.txt Doc\控制对象自定义字段.txt = Doc\控制对象自定义字段.txt
EndProjectSection 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