Commit 667eea85 by liulongfei

底飞

parent 690f781e
...@@ -76,6 +76,48 @@ namespace VIZ.Package.Domain ...@@ -76,6 +76,48 @@ namespace VIZ.Package.Domain
#endregion #endregion
#region Width -- 宽度
private GridColumnWidth width = new GridColumnWidth(1, GridColumnUnitType.Auto);
/// <summary>
/// 宽度
/// </summary>
public GridColumnWidth Width
{
get { return width; }
set { width = value; this.RaisePropertyChanged(nameof(Width)); }
}
#endregion
#region MinWidth -- 最小宽度
private double minWidth = 10d;
/// <summary>
/// 最小宽度
/// </summary>
public double MinWidth
{
get { return minWidth; }
set { minWidth = value; this.RaisePropertyChanged(nameof(MinWidth)); }
}
#endregion
#region MaxWidth -- 最大宽度
private double maxWidth = 500d;
/// <summary>
/// 最大宽度
/// </summary>
public double MaxWidth
{
get { return maxWidth; }
set { maxWidth = value; this.RaisePropertyChanged(nameof(MaxWidth)); }
}
#endregion
#region AllowEditing -- 是否启用编辑 #region AllowEditing -- 是否启用编辑
private bool allowEditing; private bool allowEditing;
......
...@@ -18,6 +18,11 @@ namespace VIZ.Package.Module ...@@ -18,6 +18,11 @@ namespace VIZ.Package.Module
public class ScrollElementEditPanelCellTemplateSelector : DataTemplateSelector public class ScrollElementEditPanelCellTemplateSelector : DataTemplateSelector
{ {
/// <summary> /// <summary>
/// 索引模板
/// </summary>
public DataTemplate IndexTemplate { get; set; }
/// <summary>
/// 文本模板 /// 文本模板
/// </summary> /// </summary>
public DataTemplate TextDataTemplate { get; set; } public DataTemplate TextDataTemplate { get; set; }
...@@ -49,6 +54,7 @@ namespace VIZ.Package.Module ...@@ -49,6 +54,7 @@ namespace VIZ.Package.Module
switch (definition.Type) switch (definition.Type)
{ {
case VizControlFieldType.none: return null; case VizControlFieldType.none: return null;
case VizControlFieldType.system_index: return this.IndexTemplate;
case VizControlFieldType.text: return this.TextDataTemplate; case VizControlFieldType.text: return this.TextDataTemplate;
case VizControlFieldType.richtext: return this.RichTextDataTemplate; case VizControlFieldType.richtext: return this.RichTextDataTemplate;
case VizControlFieldType.image: return this.ImageDataTemplate; case VizControlFieldType.image: return this.ImageDataTemplate;
......
...@@ -25,6 +25,12 @@ ...@@ -25,6 +25,12 @@
<!-- 单元格编辑模板选择器 --> <!-- 单元格编辑模板选择器 -->
<local:ScrollElementEditPanelCellTemplateSelector x:Key="CellTemplateSelector"> <local:ScrollElementEditPanelCellTemplateSelector x:Key="CellTemplateSelector">
<!-- 索引 -->
<local:ScrollElementEditPanelCellTemplateSelector.IndexTemplate>
<DataTemplate>
<TextBlock Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" Text="{Binding RowData.RowHandle,Converter={StaticResource RowHandleConverter}}"></TextBlock>
</DataTemplate>
</local:ScrollElementEditPanelCellTemplateSelector.IndexTemplate>
<!-- 富文本 --> <!-- 富文本 -->
<local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate> <local:ScrollElementEditPanelCellTemplateSelector.RichTextDataTemplate>
<DataTemplate> <DataTemplate>
...@@ -60,8 +66,8 @@ ...@@ -60,8 +66,8 @@
<DataTemplate x:Key="ColumnTemplate"> <DataTemplate x:Key="ColumnTemplate">
<ContentControl> <ContentControl>
<dxg:GridColumn FieldName="{Binding FieldName}" <dxg:GridColumn FieldName="{Binding FieldName}"
MinWidth="320" Width="Auto"
Header="{Binding Header}" ReadOnly="{Binding ReadOnly}" Header="{Binding Header}" ReadOnly="{Binding ReadOnly}"
Width="{Binding Width}" MinWidth="{Binding MinWidth}" MaxWidth="{Binding MaxWidth}"
CellTemplateSelector="{StaticResource CellTemplateSelector}" CellTemplateSelector="{StaticResource CellTemplateSelector}"
CellEditTemplateSelector="{StaticResource CellEditTemplateSelector}" CellEditTemplateSelector="{StaticResource CellEditTemplateSelector}"
AllowEditing="{Binding AllowEditing}" AllowEditing="{Binding AllowEditing}"
...@@ -76,6 +82,7 @@ ...@@ -76,6 +82,7 @@
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="40"></RowDefinition> <RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="*"></RowDefinition> <RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="50"></RowDefinition>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!-- 模板 --> <!-- 模板 -->
...@@ -85,7 +92,7 @@ ...@@ -85,7 +92,7 @@
<ColumnDefinition Width="300"></ColumnDefinition> <ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="底飞模板:" VerticalAlignment="Center" HorizontalAlignment="Right" Opacity="0.86"></TextBlock> <TextBlock Text="底飞模板:" VerticalAlignment="Center" HorizontalAlignment="Right" Opacity="0.75"></TextBlock>
<dxe:ComboBoxEdit IsTextEditable="False" Height="30" Grid.Column="1" Margin="20,0,0,0" <dxe:ComboBoxEdit IsTextEditable="False" Height="30" Grid.Column="1" Margin="20,0,0,0"
EditValue="{Binding Path=SelectedSceneTemplateModel,Mode=TwoWay}" EditValue="{Binding Path=SelectedSceneTemplateModel,Mode=TwoWay}"
ItemsSource="{Binding Path=SceneTemplateModels,Mode=OneWay}" DisplayMember="Scene"></dxe:ComboBoxEdit> ItemsSource="{Binding Path=SceneTemplateModels,Mode=OneWay}" DisplayMember="Scene"></dxe:ComboBoxEdit>
...@@ -126,5 +133,27 @@ ...@@ -126,5 +133,27 @@
</dxg:TableView> </dxg:TableView>
</dxg:GridControl.View> </dxg:GridControl.View>
</dxg:GridControl> </dxg:GridControl>
<!-- 预览控制 -->
<Grid Grid.Row="2" Margin="2,0,2,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="120"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Width="80" Height="24" Content="Play" Command="{Binding Path=PreviewPlayCommand}"></Button>
<Button Width="80" Height="24" Content="Stop" Grid.Column="1" Command="{Binding Path=PreviewStopCommand}"></Button>
<Button Width="80" Height="24" Content="Continue" Grid.Column="2" Command="{Binding Path=PreviewContinueCommnad}"></Button>
<TextBlock Text="Position:" Opacity="0.75" Grid.Column="3" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,5,0"></TextBlock>
<dxe:TextEdit Width="100" Height="24" Grid.Column="4" EditValue="{Binding Path=PreviewPosition,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
dxe:NumericMaskOptions.ValueAfterDelete="ZeroThenNull"
dxe:NumericMaskOptions.AlwaysShowDecimalSeparator="False"
MaskType="Numeric" Mask="##########.###"></dxe:TextEdit>
<Button Width="80" Height="24" Content="Apply" Grid.Column="5" Command="{Binding Path=PreviewSetPosCommand}"></Button>
</Grid>
</Grid> </Grid>
</UserControl> </UserControl>
...@@ -44,6 +44,11 @@ namespace VIZ.Package.Module ...@@ -44,6 +44,11 @@ namespace VIZ.Package.Module
this.ApplyTemplateCommand = new VCommand(this.ApplyTemplate); this.ApplyTemplateCommand = new VCommand(this.ApplyTemplate);
this.AddCommand = new VCommand(this.Add); this.AddCommand = new VCommand(this.Add);
this.RemoveCommand = new VCommand(this.Remove); this.RemoveCommand = new VCommand(this.Remove);
this.PreviewPlayCommand = new VCommand(this.PreviewPlay);
this.PreviewContinueCommnad = new VCommand(this.PreviewContinue);
this.PreviewStopCommand = new VCommand(this.PreviewStop);
this.PreviewSetPosCommand = new VCommand(this.PreviewSetPos);
} }
// ============================================================ // ============================================================
...@@ -61,10 +66,15 @@ namespace VIZ.Package.Module ...@@ -61,10 +66,15 @@ namespace VIZ.Package.Module
private VizCommandControlObjectService vizCommandControlObjectService = new VizCommandControlObjectService(); private VizCommandControlObjectService vizCommandControlObjectService = new VizCommandControlObjectService();
/// <summary> /// <summary>
/// 底飞服务 /// 底飞数据服务
/// </summary> /// </summary>
private ScrollElementService scrollElementService = new ScrollElementService(); private ScrollElementService scrollElementService = new ScrollElementService();
/// <summary>
/// 底飞命令服务
/// </summary>
private VizCommandElementService vizCommandElementService = new VizCommandElementService();
// ============================================================ // ============================================================
// Property // Property
// ============================================================ // ============================================================
...@@ -153,6 +163,20 @@ namespace VIZ.Package.Module ...@@ -153,6 +163,20 @@ namespace VIZ.Package.Module
#endregion #endregion
#region PreviewPosition -- 预览位置
private double previewPosition;
/// <summary>
/// 预览位置
/// </summary>
public double PreviewPosition
{
get { return previewPosition; }
set { previewPosition = value; this.RaisePropertyChanged(nameof(PreviewPosition)); }
}
#endregion
// ============================================================ // ============================================================
// Command // Command
// ============================================================ // ============================================================
...@@ -207,6 +231,9 @@ namespace VIZ.Package.Module ...@@ -207,6 +231,9 @@ namespace VIZ.Package.Module
{ {
foreach (GridColumnScrollElementFieldDefinition field in this.Columns) foreach (GridColumnScrollElementFieldDefinition field in this.Columns)
{ {
if (field.Type == VizControlFieldType.system_index)
continue;
row[field.FieldName] = null; row[field.FieldName] = null;
} }
} }
...@@ -236,6 +263,75 @@ namespace VIZ.Package.Module ...@@ -236,6 +263,75 @@ namespace VIZ.Package.Module
#endregion #endregion
#region PreviewPlayCommand -- 预览播放命令
/// <summary>
/// 预览播放命令
/// </summary>
public VCommand PreviewPlayCommand { get; set; }
/// <summary>
/// 预览播放
/// </summary>
private void PreviewPlay()
{
this.vizCommandElementService.PreviewPlay(this.ControlField);
}
#endregion
#region PreviewStopCommand -- 预览停止命令
/// <summary>
/// 预览停止命令
/// </summary>
public VCommand PreviewStopCommand { get; set; }
/// <summary>
/// 预览停止
/// </summary>
private void PreviewStop()
{
this.vizCommandElementService.PreviewStop(this.ControlField);
this.PreviewPosition = this.vizCommandElementService.PreviewGetPos(this.ControlField) ?? 0;
}
#endregion
#region PreviewContinueCommand -- 预览继续命令
/// <summary>
/// 预览继续命令
/// </summary>
public VCommand PreviewContinueCommnad { get; set; }
/// <summary>
/// 预览继续
/// </summary>
private void PreviewContinue()
{
this.vizCommandElementService.PreviewContinue(this.ControlField);
}
#endregion
#region PreviewSetPosCommand -- 预览设置位置命令
/// <summary>
/// 预览设置位置命令
/// </summary>
public VCommand PreviewSetPosCommand { get; set; }
/// <summary>
/// 预览设置位置
/// </summary>
private void PreviewSetPos()
{
this.vizCommandElementService.PreviewSetPos(this.ControlField, this.PreviewPosition);
}
#endregion
// ============================================================ // ============================================================
// Message // Message
// ============================================================ // ============================================================
......
using System; using DevExpress.Xpf.Grid;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Dynamic; using System.Dynamic;
using System.Linq; using System.Linq;
...@@ -94,6 +95,16 @@ namespace VIZ.Package.Service ...@@ -94,6 +95,16 @@ namespace VIZ.Package.Service
{ {
List<GridColumnScrollElementFieldDefinition> columns = new List<GridColumnScrollElementFieldDefinition>(); List<GridColumnScrollElementFieldDefinition> columns = new List<GridColumnScrollElementFieldDefinition>();
// 索引
GridColumnScrollElementFieldDefinition index = new GridColumnScrollElementFieldDefinition();
index.Header = "序号";
index.AllowEditing = false;
index.AllowResizing = true;
index.Width = new GridColumnWidth(30, GridColumnUnitType.Pixel);
index.MinWidth = 40;
index.Type = VizControlFieldType.system_index;
columns.Add(index);
if (pageBase == null || scrollElementFields == null || scrollElementFields.Count == 0) if (pageBase == null || scrollElementFields == null || scrollElementFields.Count == 0)
return columns; return columns;
...@@ -104,6 +115,7 @@ namespace VIZ.Package.Service ...@@ -104,6 +115,7 @@ namespace VIZ.Package.Service
column.Header = (field.FieldIdentifier == field.Description) ? field.FieldIdentifier : $"({field.Description}){field.FieldIdentifier}"; column.Header = (field.FieldIdentifier == field.Description) ? field.FieldIdentifier : $"({field.Description}){field.FieldIdentifier}";
column.FieldName = field.FieldIdentifier; column.FieldName = field.FieldIdentifier;
column.AllowEditing = !VizCommandControlObjectService.ALLOW_EDITING_FALSE_TYPES.Contains(field.Type); column.AllowEditing = !VizCommandControlObjectService.ALLOW_EDITING_FALSE_TYPES.Contains(field.Type);
column.MinWidth = 320;
column.PageBase = pageBase; column.PageBase = pageBase;
column.ControlObject = controlObject; column.ControlObject = controlObject;
column.ControlField = field; column.ControlField = field;
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
<Reference Include="CsvHelper, Version=30.0.0.0, Culture=neutral, PublicKeyToken=8c4959082be5c823, processorArchitecture=MSIL"> <Reference Include="CsvHelper, Version=30.0.0.0, Culture=neutral, PublicKeyToken=8c4959082be5c823, processorArchitecture=MSIL">
<HintPath>..\packages\CsvHelper.30.0.1\lib\net47\CsvHelper.dll</HintPath> <HintPath>..\packages\CsvHelper.30.0.1\lib\net47\CsvHelper.dll</HintPath>
</Reference> </Reference>
<Reference Include="DevExpress.Xpf.Grid.v22.2.Core, Version=22.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="LiteDB, Version=5.0.15.0, Culture=neutral, PublicKeyToken=4ee40123013c9f27, processorArchitecture=MSIL"> <Reference Include="LiteDB, Version=5.0.15.0, Culture=neutral, PublicKeyToken=4ee40123013c9f27, processorArchitecture=MSIL">
<HintPath>..\packages\LiteDB.5.0.15\lib\net45\LiteDB.dll</HintPath> <HintPath>..\packages\LiteDB.5.0.15\lib\net45\LiteDB.dll</HintPath>
</Reference> </Reference>
......
...@@ -3,6 +3,7 @@ using System.Collections.Generic; ...@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using VIZ.Package.Domain;
namespace VIZ.Package.Service namespace VIZ.Package.Service
{ {
...@@ -11,6 +12,73 @@ namespace VIZ.Package.Service ...@@ -11,6 +12,73 @@ namespace VIZ.Package.Service
/// </summary> /// </summary>
public class VizCommandElementService public class VizCommandElementService
{ {
/// <summary>
/// 预览播放
/// </summary>
/// <param name="scrollElementField">底飞元素字段</param>
public void PreviewPlay(ControlFieldNodeModel scrollElementField)
{
if (ApplicationDomainEx.PreviewConn == null || !ApplicationDomainEx.PreviewConn.IsConnected)
return;
ApplicationDomainEx.PreviewConn.EndpointManager.Send($"{ApplicationDomainEx.VizPreviewRenderer}*TREE*$object*FUNCTION*ControlObject*in SET ON_CONTAINER {scrollElementField.FieldIdentifier} GEOM*start INVOKE");
}
/// <summary>
/// 预览继续
/// </summary>
/// <param name="scrollElementField">底飞元素字段</param>
public void PreviewContinue(ControlFieldNodeModel scrollElementField)
{
if (ApplicationDomainEx.PreviewConn == null || !ApplicationDomainEx.PreviewConn.IsConnected)
return;
ApplicationDomainEx.PreviewConn.EndpointManager.Send($"{ApplicationDomainEx.VizPreviewRenderer}*TREE*$object*FUNCTION*ControlObject*in SET ON_CONTAINER {scrollElementField.FieldIdentifier} GEOM*continue INVOKE");
}
/// <summary>
/// 预览停止
/// </summary>
/// <param name="scrollElementField">底飞元素字段</param>
public void PreviewStop(ControlFieldNodeModel scrollElementField)
{
if (ApplicationDomainEx.PreviewConn == null || !ApplicationDomainEx.PreviewConn.IsConnected)
return;
ApplicationDomainEx.PreviewConn.EndpointManager.Send($"{ApplicationDomainEx.VizPreviewRenderer}*TREE*$object*FUNCTION*ControlObject*in SET ON_CONTAINER {scrollElementField.FieldIdentifier} GEOM*stop INVOKE");
}
/// <summary>
/// 预览设置位置
/// </summary>
/// <param name="scrollElementField">底飞元素字段</param>
/// <param name="pos">位置值</param>
public void PreviewSetPos(ControlFieldNodeModel scrollElementField, double pos)
{
if (ApplicationDomainEx.PreviewConn == null || !ApplicationDomainEx.PreviewConn.IsConnected)
return;
ApplicationDomainEx.PreviewConn.EndpointManager.Send($"{ApplicationDomainEx.VizPreviewRenderer}*TREE*$object*FUNCTION*ControlObject*in SET ON_CONTAINER {scrollElementField.FieldIdentifier} GEOM*currentPos SET {pos}");
}
/// <summary>
/// 预览获取位置值
/// </summary>
/// <param name="scrollElementField">底飞元素字段</param>
/// <returns>位置值</returns>
public double? PreviewGetPos(ControlFieldNodeModel scrollElementField)
{
if (ApplicationDomainEx.PreviewConn == null || !ApplicationDomainEx.PreviewConn.IsConnected)
return null;
string result = ApplicationDomainEx.PreviewConn.EndpointManager.Request($"{ApplicationDomainEx.VizPreviewRenderer}*TREE*$object*FUNCTION*ControlObject*in SET ON_CONTAINER {scrollElementField.FieldIdentifier} GEOM*currentPos GET");
if (string.IsNullOrWhiteSpace(result) || result.StartsWith(ApplicationConstants.VIZ_COMMAND_RESULT_ERROR_PREFIX))
return null;
double.TryParse(result, out double value);
return value;
}
} }
} }
...@@ -94,6 +94,12 @@ namespace VIZ.Package.Storage ...@@ -94,6 +94,12 @@ namespace VIZ.Package.Storage
/// 自定义 视频 /// 自定义 视频
/// </summary> /// </summary>
[Description("自定义 视频")] [Description("自定义 视频")]
custom_video custom_video,
/// <summary>
/// 自定义 视频
/// </summary>
[Description("系统 索引")]
system_index
} }
} }
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