Commit 667eea85 by liulongfei

底飞

parent 690f781e
......@@ -76,6 +76,48 @@ namespace VIZ.Package.Domain
#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 -- 是否启用编辑
private bool allowEditing;
......
......@@ -18,6 +18,11 @@ namespace VIZ.Package.Module
public class ScrollElementEditPanelCellTemplateSelector : DataTemplateSelector
{
/// <summary>
/// 索引模板
/// </summary>
public DataTemplate IndexTemplate { get; set; }
/// <summary>
/// 文本模板
/// </summary>
public DataTemplate TextDataTemplate { get; set; }
......@@ -49,6 +54,7 @@ namespace VIZ.Package.Module
switch (definition.Type)
{
case VizControlFieldType.none: return null;
case VizControlFieldType.system_index: return this.IndexTemplate;
case VizControlFieldType.text: return this.TextDataTemplate;
case VizControlFieldType.richtext: return this.RichTextDataTemplate;
case VizControlFieldType.image: return this.ImageDataTemplate;
......
......@@ -25,6 +25,12 @@
<!-- 单元格编辑模板选择器 -->
<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>
<DataTemplate>
......@@ -60,8 +66,8 @@
<DataTemplate x:Key="ColumnTemplate">
<ContentControl>
<dxg:GridColumn FieldName="{Binding FieldName}"
MinWidth="320" Width="Auto"
Header="{Binding Header}" ReadOnly="{Binding ReadOnly}"
Width="{Binding Width}" MinWidth="{Binding MinWidth}" MaxWidth="{Binding MaxWidth}"
CellTemplateSelector="{StaticResource CellTemplateSelector}"
CellEditTemplateSelector="{StaticResource CellEditTemplateSelector}"
AllowEditing="{Binding AllowEditing}"
......@@ -76,6 +82,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="40"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="50"></RowDefinition>
</Grid.RowDefinitions>
<!-- 模板 -->
......@@ -85,7 +92,7 @@
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</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"
EditValue="{Binding Path=SelectedSceneTemplateModel,Mode=TwoWay}"
ItemsSource="{Binding Path=SceneTemplateModels,Mode=OneWay}" DisplayMember="Scene"></dxe:ComboBoxEdit>
......@@ -126,5 +133,27 @@
</dxg:TableView>
</dxg:GridControl.View>
</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>
</UserControl>
......@@ -44,6 +44,11 @@ namespace VIZ.Package.Module
this.ApplyTemplateCommand = new VCommand(this.ApplyTemplate);
this.AddCommand = new VCommand(this.Add);
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
private VizCommandControlObjectService vizCommandControlObjectService = new VizCommandControlObjectService();
/// <summary>
/// 底飞服务
/// 底飞数据服务
/// </summary>
private ScrollElementService scrollElementService = new ScrollElementService();
/// <summary>
/// 底飞命令服务
/// </summary>
private VizCommandElementService vizCommandElementService = new VizCommandElementService();
// ============================================================
// Property
// ============================================================
......@@ -153,6 +163,20 @@ namespace VIZ.Package.Module
#endregion
#region PreviewPosition -- 预览位置
private double previewPosition;
/// <summary>
/// 预览位置
/// </summary>
public double PreviewPosition
{
get { return previewPosition; }
set { previewPosition = value; this.RaisePropertyChanged(nameof(PreviewPosition)); }
}
#endregion
// ============================================================
// Command
// ============================================================
......@@ -207,6 +231,9 @@ namespace VIZ.Package.Module
{
foreach (GridColumnScrollElementFieldDefinition field in this.Columns)
{
if (field.Type == VizControlFieldType.system_index)
continue;
row[field.FieldName] = null;
}
}
......@@ -236,6 +263,75 @@ namespace VIZ.Package.Module
#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
// ============================================================
......
using System;
using DevExpress.Xpf.Grid;
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
......@@ -94,6 +95,16 @@ namespace VIZ.Package.Service
{
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)
return columns;
......@@ -104,6 +115,7 @@ namespace VIZ.Package.Service
column.Header = (field.FieldIdentifier == field.Description) ? field.FieldIdentifier : $"({field.Description}){field.FieldIdentifier}";
column.FieldName = field.FieldIdentifier;
column.AllowEditing = !VizCommandControlObjectService.ALLOW_EDITING_FALSE_TYPES.Contains(field.Type);
column.MinWidth = 320;
column.PageBase = pageBase;
column.ControlObject = controlObject;
column.ControlField = field;
......
......@@ -52,6 +52,7 @@
<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>
</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">
<HintPath>..\packages\LiteDB.5.0.15\lib\net45\LiteDB.dll</HintPath>
</Reference>
......
......@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Package.Domain;
namespace VIZ.Package.Service
{
......@@ -11,6 +12,73 @@ namespace VIZ.Package.Service
/// </summary>
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
/// 自定义 视频
/// </summary>
[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