Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
VIZ.Package
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘龙飞
VIZ.Package
Commits
d6db8bbe
Commit
d6db8bbe
authored
Feb 02, 2023
by
liulongfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
任务支持
parent
f33e1d02
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
281 additions
and
195 deletions
+281
-195
VIZ.Package.Domain/Enum/PackageTaskStatus.cs
+0
-29
VIZ.Package.Domain/Interface/Task/IPackageTaskInterface.cs
+0
-32
VIZ.Package.Domain/Model/Task/PackageTaskModel.cs
+56
-43
VIZ.Package.Domain/Plugin/PluginInfo.cs
+4
-0
VIZ.Package.Domain/VIZ.Package.Domain.csproj
+0
-2
VIZ.Package.Module.Resource/Icons/icon_pause_32x32.png
+0
-0
VIZ.Package.Module.Resource/Icons/icon_play_32x32.png
+0
-0
VIZ.Package.Module.Resource/Icons/message_32x32.png
+0
-0
VIZ.Package.Module.Resource/Icons/status_error_32x32.png
+0
-0
VIZ.Package.Module.Resource/Icons/status_pause_32x32.png
+0
-0
VIZ.Package.Module.Resource/Icons/status_runing_32x32.png
+0
-0
VIZ.Package.Module.Resource/Style/IconButton/IconButton_Default.xaml
+3
-0
VIZ.Package.Module.Resource/VIZ.Package.Module.Resource.csproj
+13
-0
VIZ.Package.Module/Control/ViewModel/ControlViewModel.cs
+7
-0
VIZ.Package.Module/Page/Group/ViewModel/PageAddViewModel.cs
+9
-7
VIZ.Package.Module/Plugin/ViewModel/PluginViewModel.cs
+3
-0
VIZ.Package.Module/Task/PackageTask/View/PackageTaskView.xaml
+68
-10
VIZ.Package.Module/Task/PackageTask/ViewModel/PackageTaskViewModel.cs
+109
-64
VIZ.Package.TestPlugin/Page/TestPageView.xaml
+2
-1
VIZ.Package.TestPlugin/Page/TestPageView.xaml.cs
+7
-7
No files found.
VIZ.Package.Domain/Enum/PackageTaskStatus.cs
deleted
100644 → 0
View file @
f33e1d02
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
VIZ.Package.Domain
{
/// <summary>
/// 包装任务状态
/// </summary>
public
enum
PackageTaskStatus
{
/// <summary>
/// 停止
/// </summary>
Stop
,
/// <summary>
/// 执行
/// </summary>
Runing
,
/// <summary>
/// 错误
/// </summary>
Error
}
}
VIZ.Package.Domain/Interface/Task/IPackageTaskInterface.cs
deleted
100644 → 0
View file @
f33e1d02
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
VIZ.Package.Domain
{
/// <summary>
/// 包装任务接口
/// </summary>
public
interface
IPackageTaskInterface
{
/// <summary>
/// 预览更新
/// </summary>
/// <param name="task">任务</param>
void
PreviewUpdate
(
PackageTaskModel
task
);
/// <summary>
/// 上版更新
/// </summary>
/// <param name="task">任务</param>
void
TakeUpdate
(
PackageTaskModel
task
);
/// <summary>
/// 销毁
/// </summary>
/// <param name="task">任务</param>
void
Dispose
(
PackageTaskModel
task
);
}
}
VIZ.Package.Domain/Model/Task/PackageTaskModel.cs
View file @
d6db8bbe
...
@@ -21,6 +21,11 @@ namespace VIZ.Package.Domain
...
@@ -21,6 +21,11 @@ namespace VIZ.Package.Domain
this
.
View
=
view
;
this
.
View
=
view
;
}
}
/// <summary>
/// 全局任务ID统计
/// </summary>
private
static
int
ALL_ID
=
1
;
#
region
View
--
插件视图
#
region
View
--
插件视图
private
IPluginView
view
;
private
IPluginView
view
;
...
@@ -38,14 +43,14 @@ namespace VIZ.Package.Domain
...
@@ -38,14 +43,14 @@ namespace VIZ.Package.Domain
#
region
ID
--
编号
#
region
ID
--
编号
private
int
id
;
private
int
id
=
ALL_ID
++
;
/// <summary>
/// <summary>
/// 编号
/// 编号
/// </summary>
/// </summary>
public
int
ID
public
int
ID
{
{
get
{
return
id
;
}
get
{
return
id
;
}
set
{
id
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
ID
))
;
}
private
set
{
id
=
value
;
}
}
}
#
endregion
#
endregion
...
@@ -78,30 +83,44 @@ namespace VIZ.Package.Domain
...
@@ -78,30 +83,44 @@ namespace VIZ.Package.Domain
#
endregion
#
endregion
#
region
IsEnabled
--
是否启用
#
region
IsPreviewEnabled
--
预览是否启用
private
bool
isPreviewEnabled
;
/// <summary>
/// 预览是否启用
/// </summary>
public
bool
IsPreviewEnabled
{
get
{
return
isPreviewEnabled
;
}
set
{
isPreviewEnabled
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
IsPreviewEnabled
));
}
}
#
endregion
#
region
IsTakeEnabled
--
上版是否启用
private
bool
isEnabled
;
private
bool
is
Take
Enabled
;
/// <summary>
/// <summary>
/// 是否启用
///
上版
是否启用
/// </summary>
/// </summary>
public
bool
IsEnabled
public
bool
Is
Take
Enabled
{
{
get
{
return
isEnabled
;
}
get
{
return
is
Take
Enabled
;
}
set
{
is
Enabled
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
Is
Enabled
));
}
set
{
is
TakeEnabled
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
IsTake
Enabled
));
}
}
}
#
endregion
#
endregion
#
region
Status
--
状态
#
region
IsRunning
--
是否正在运行
private
PackageTaskStatus
status
;
private
bool
isRunning
;
/// <summary>
/// <summary>
///
状态
///
是否正在运行
/// </summary>
/// </summary>
public
PackageTaskStatus
Status
public
bool
IsRunning
{
{
get
{
return
status
;
}
get
{
return
isRunning
;
}
set
{
status
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
Status
));
}
set
{
isRunning
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
IsRunning
));
}
}
}
#
endregion
#
endregion
...
@@ -120,6 +139,20 @@ namespace VIZ.Package.Domain
...
@@ -120,6 +139,20 @@ namespace VIZ.Package.Domain
#
endregion
#
endregion
#
region
Interval
--
触发间隔(单位:秒)
private
double
interval
=
5
;
/// <summary>
/// 触发间隔(单位:秒)
/// </summary>
public
double
Interval
{
get
{
return
interval
;
}
set
{
interval
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
Interval
));
}
}
#
endregion
#
region
PreviewUpdateTime
--
预览更新时间
#
region
PreviewUpdateTime
--
预览更新时间
private
DateTime
?
previewUpdateTime
;
private
DateTime
?
previewUpdateTime
;
...
@@ -149,9 +182,14 @@ namespace VIZ.Package.Domain
...
@@ -149,9 +182,14 @@ namespace VIZ.Package.Domain
#
endregion
#
endregion
/// <summary>
/// <summary>
///
包装任务接口
///
计时器信息
/// </summary>
/// </summary>
public
IPackageTaskInterface
PackageTaskInterface
{
get
;
set
;
}
public
TimerInfo
TimerInfo
{
get
;
set
;
}
/// <summary>
/// 是否可以执行
/// </summary>
public
bool
CanExecute
{
get
;
set
;
}
=
true
;
/// <summary>
/// <summary>
/// 预览更新行为
/// 预览更新行为
...
@@ -164,37 +202,12 @@ namespace VIZ.Package.Domain
...
@@ -164,37 +202,12 @@ namespace VIZ.Package.Domain
public
Action
<
ConnModel
>
TakeUpdateAction
{
get
;
set
;
}
public
Action
<
ConnModel
>
TakeUpdateAction
{
get
;
set
;
}
/// <summary>
/// <summary>
/// 预览更新
/// </summary>
public
void
PreviewUpdate
()
{
if
(!
this
.
IsEnabled
||
this
.
PreviewUpdateAction
==
null
)
return
;
this
.
PackageTaskInterface
?.
PreviewUpdate
(
this
);
this
.
PreviewUpdateTime
=
DateTime
.
Now
;
}
/// <summary>
/// 上版更新
/// </summary>
public
void
TakeUpdate
()
{
if
(!
this
.
IsEnabled
||
this
.
TakeUpdateAction
==
null
)
return
;
this
.
PackageTaskInterface
?.
TakeUpdate
(
this
);
this
.
TakeUpdateTime
=
DateTime
.
Now
;
}
/// <summary>
/// 销毁
/// 销毁
/// </summary>
/// </summary>
public
void
Dispose
()
public
void
Dispose
()
{
{
this
.
PackageTaskInterface
?.
Dispose
(
this
);
this
.
PreviewUpdateAction
=
null
;
this
.
TakeUpdateAction
=
null
;
}
}
}
}
}
}
VIZ.Package.Domain/Plugin/PluginInfo.cs
View file @
d6db8bbe
...
@@ -111,5 +111,9 @@ namespace VIZ.Package.Domain
...
@@ -111,5 +111,9 @@ namespace VIZ.Package.Domain
#
endregion
#
endregion
/// <summary>
/// 空插件
/// </summary>
public
static
PluginInfo
NONE
{
get
;
}
=
new
PluginInfo
();
}
}
}
}
VIZ.Package.Domain/VIZ.Package.Domain.csproj
View file @
d6db8bbe
...
@@ -77,10 +77,8 @@
...
@@ -77,10 +77,8 @@
<Compile Include="Core\GridColumnDefinition.cs" />
<Compile Include="Core\GridColumnDefinition.cs" />
<Compile Include="Enum\ConnGroupStatus.cs" />
<Compile Include="Enum\ConnGroupStatus.cs" />
<Compile Include="Enum\ModulePluginIds.cs" />
<Compile Include="Enum\ModulePluginIds.cs" />
<Compile Include="Enum\PackageTaskStatus.cs" />
<Compile Include="Enum\ViewServiceKeys.cs" />
<Compile Include="Enum\ViewServiceKeys.cs" />
<Compile Include="Info\VizTreeNodeInfo.cs" />
<Compile Include="Info\VizTreeNodeInfo.cs" />
<Compile Include="Interface\Task\IPackageTaskInterface.cs" />
<Compile Include="Message\Application\ApplicationClosedMessage.cs" />
<Compile Include="Message\Application\ApplicationClosedMessage.cs" />
<Compile Include="Message\Application\ApplicationClosingMessage.cs" />
<Compile Include="Message\Application\ApplicationClosingMessage.cs" />
<Compile Include="Message\Conn\ConnChangedMessage.cs" />
<Compile Include="Message\Conn\ConnChangedMessage.cs" />
...
...
VIZ.Package.Module.Resource/Icons/icon_pause_32x32.png
0 → 100644
View file @
d6db8bbe
182 Bytes
VIZ.Package.Module.Resource/Icons/icon_play_32x32.png
0 → 100644
View file @
d6db8bbe
340 Bytes
VIZ.Package.Module.Resource/Icons/message_32x32.png
0 → 100644
View file @
d6db8bbe
512 Bytes
VIZ.Package.Module.Resource/Icons/status_error_32x32.png
0 → 100644
View file @
d6db8bbe
678 Bytes
VIZ.Package.Module.Resource/Icons/status_pause_32x32.png
0 → 100644
View file @
d6db8bbe
1009 Bytes
VIZ.Package.Module.Resource/Icons/status_runing_32x32.png
0 → 100644
View file @
d6db8bbe
1.08 KB
VIZ.Package.Module.Resource/Style/IconButton/IconButton_Default.xaml
View file @
d6db8bbe
...
@@ -152,6 +152,9 @@
...
@@ -152,6 +152,9 @@
<Trigger Property="IsPressed" Value="True">
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="icon" Property="Background" Value="#AA4E4BDE"></Setter>
<Setter TargetName="icon" Property="Background" Value="#AA4E4BDE"></Setter>
</Trigger>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.4"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate.Triggers>
</ControlTemplate>
</ControlTemplate>
</Setter.Value>
</Setter.Value>
...
...
VIZ.Package.Module.Resource/VIZ.Package.Module.Resource.csproj
View file @
d6db8bbe
...
@@ -219,5 +219,17 @@
...
@@ -219,5 +219,17 @@
<Resource Include="Icons\add_32x32.png" />
<Resource Include="Icons\add_32x32.png" />
<Resource Include="Icons\delete_32x32.png" />
<Resource Include="Icons\delete_32x32.png" />
</ItemGroup>
</ItemGroup>
<ItemGroup>
<Resource Include="Icons\status_error_32x32.png" />
<Resource Include="Icons\status_pause_32x32.png" />
<Resource Include="Icons\status_runing_32x32.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Icons\message_32x32.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Icons\icon_pause_32x32.png" />
<Resource Include="Icons\icon_play_32x32.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
</Project>
\ No newline at end of file
VIZ.Package.Module/Control/ViewModel/ControlViewModel.cs
View file @
d6db8bbe
...
@@ -210,6 +210,13 @@ namespace VIZ.Package.Module
...
@@ -210,6 +210,13 @@ namespace VIZ.Package.Module
{
{
// 模板上版等操作使用默认分组
// 模板上版等操作使用默认分组
ConnGroupModel
group
=
ApplicationDomainEx
.
ConnGroups
.
FirstOrDefault
(
p
=>
p
.
IsDefault
);
ConnGroupModel
group
=
ApplicationDomainEx
.
ConnGroups
.
FirstOrDefault
(
p
=>
p
.
IsDefault
);
// 如果没有默认分组,那么采用第一个可用分组
if
(
group
==
null
)
{
group
=
ApplicationDomainEx
.
ConnGroups
.
FirstOrDefault
(
p
=>
p
.
IsEnabled
);
}
// 如果没有分组可用,那么不处理
if
(
group
==
null
)
if
(
group
==
null
)
return
;
return
;
...
...
VIZ.Package.Module/Page/Group/ViewModel/PageAddViewModel.cs
View file @
d6db8bbe
...
@@ -123,17 +123,19 @@ namespace VIZ.Package.Module
...
@@ -123,17 +123,19 @@ namespace VIZ.Package.Module
private
void
Loaded
()
private
void
Loaded
()
{
{
// 模板插件集合
// 模板插件集合
this
.
TemplatePlugins
=
ApplicationDomainEx
.
PluginInfos
.
Where
(
var
list
=
ApplicationDomainEx
.
PluginInfos
.
Where
(
p
=>
!
string
.
IsNullOrWhiteSpace
(
p
.
Group
)
&&
p
=>
!
string
.
IsNullOrWhiteSpace
(
p
.
Group
)
&&
p
.
Group
!=
ApplicationConstants
.
APPLICATION_GROUP_NAME
&&
p
.
Group
!=
ApplicationConstants
.
APPLICATION_GROUP_NAME
&&
p
.
Group
==
ApplicationDomainEx
.
VizConfig
.
PluginGroup
&&
p
.
Group
==
ApplicationDomainEx
.
VizConfig
.
PluginGroup
&&
p
.
PluginType
==
PluginType
.
Page
).
ToList
();
p
.
PluginType
==
PluginType
.
Page
).
ToList
();
list
.
Insert
(
0
,
PluginInfo
.
NONE
);
this
.
TemplatePlugins
=
list
;
// 选择默认模板
// 选择默认模板
PluginMapping
mapping
=
ApplicationDomainEx
.
PluginMappingConfig
?.
Mappings
?.
FirstOrDefault
(
p
=>
p
.
Scene
==
this
.
Scene
);
PluginMapping
mapping
=
ApplicationDomainEx
.
PluginMappingConfig
?.
Mappings
?.
FirstOrDefault
(
p
=>
p
.
Scene
==
this
.
Scene
);
if
(
mapping
!=
null
)
if
(
mapping
!=
null
)
{
{
this
.
SelectedTemplatePlugin
=
this
.
TemplatePlugins
.
FirstOrDefault
(
p
=>
p
.
ID
==
mapping
.
PluginID
);
this
.
SelectedTemplatePlugin
=
this
.
TemplatePlugins
.
FirstOrDefault
(
p
=>
p
!=
PluginInfo
.
NONE
&&
p
.
ID
==
mapping
.
PluginID
);
}
}
}
}
...
...
VIZ.Package.Module/Plugin/ViewModel/PluginViewModel.cs
View file @
d6db8bbe
...
@@ -219,6 +219,9 @@ namespace VIZ.Package.Module
...
@@ -219,6 +219,9 @@ namespace VIZ.Package.Module
{
{
foreach
(
PluginNavigationConfig
config
in
this
.
ItemsSource
)
foreach
(
PluginNavigationConfig
config
in
this
.
ItemsSource
)
{
{
if
(
config
.
View
==
null
)
continue
;
config
.
View
.
TryGetTarget
(
out
object
target
);
config
.
View
.
TryGetTarget
(
out
object
target
);
if
(
target
==
null
)
if
(
target
==
null
)
continue
;
continue
;
...
...
VIZ.Package.Module/Task/PackageTask/View/PackageTaskView.xaml
View file @
d6db8bbe
...
@@ -15,45 +15,103 @@
...
@@ -15,45 +15,103 @@
xmlns:local="clr-namespace:VIZ.Package.Module"
xmlns:local="clr-namespace:VIZ.Package.Module"
xmlns:domain="clr-namespace:VIZ.Package.Domain;assembly=VIZ.Package.Domain"
xmlns:domain="clr-namespace:VIZ.Package.Domain;assembly=VIZ.Package.Domain"
d:DataContext="{d:DesignInstance Type=local:PackageTaskViewModel}"
d:DataContext="{d:DesignInstance Type=local:PackageTaskViewModel}"
mc:Ignorable="d"
mc:Ignorable="d"
x:Name="uc"
d:DesignHeight="45" d:DesignWidth="800">
d:DesignHeight="45" d:DesignWidth="800">
<UserControl.Resources>
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/VIZ.Package.Module.Resource;component/Style/IconButton/IconButton_Default.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<fcore:Bool2ImageSourceConverter x:Key="Bool2ImageSourceConverter"
TrueResult="/VIZ.Package.Module.Resource;component/Icons/status_runing_32x32.png"
FalseResult="/VIZ.Package.Module.Resource;component/Icons/status_pause_32x32.png"
NullResult="/VIZ.Package.Module.Resource;component/Icons/status_pause_32x32.png"></fcore:Bool2ImageSourceConverter>
<fcore:Bool2BoolConverter x:Key="Bool2BoolConverter"></fcore:Bool2BoolConverter>
<fcore:StringNotNull2VisibilityConverter x:Key="StringNotNull2VisibilityConverter"></fcore:StringNotNull2VisibilityConverter>
</ResourceDictionary>
</UserControl.Resources>
</UserControl.Resources>
<Grid>
<Grid>
<dxg:GridControl ItemsSource="{Binding Path=ItemsSource}" ShowBorder="False">
<dxg:GridControl ItemsSource="{Binding Path=ItemsSource}" ShowBorder="False">
<dxg:GridControl.Columns>
<dxg:GridControl.Columns>
<dxg:GridColumn Header="编号" FieldName="ID" ReadOnly="True" AllowSorting="False" AllowColumnFiltering="False"></dxg:GridColumn>
<dxg:GridColumn Header="编号" FieldName="ID" ReadOnly="True" AllowSorting="False" AllowColumnFiltering="False"
AllowResizing="False" Width="80"></dxg:GridColumn>
<dxg:GridColumn Header="状态" FieldName="Status" ReadOnly="True" AllowSorting="False" AllowColumnFiltering="False"
AllowResizing="False" Width="80">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Image Width="20" Height="20" Margin="0,3,0,3" HorizontalAlignment="Center" VerticalAlignment="Center"
Source="{Binding Path=Row.IsRunning,Converter={StaticResource Bool2ImageSourceConverter}}"></Image>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn Header="名称" FieldName="Name" ReadOnly="True" AllowSorting="False" AllowColumnFiltering="False"></dxg:GridColumn>
<dxg:GridColumn Header="名称" FieldName="Name" ReadOnly="True" AllowSorting="False" AllowColumnFiltering="False"></dxg:GridColumn>
<dxg:GridColumn Header="备注" FieldName="Remark" AllowSorting="False" AllowColumnFiltering="False">
<dxg:GridColumn Header="备注" FieldName="Remark" AllowSorting="False" AllowColumnFiltering="False">
<dxg:GridColumn.EditSettings>
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings AcceptsReturn="False"></dxe:TextEditSettings>
<dxe:TextEditSettings AcceptsReturn="False"></dxe:TextEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridColumn>
<dxg:GridColumn Header="
状态" FieldName="Status" ReadOnly="True" AllowSorting="False" AllowColumnFiltering="False"></dxg:GridColumn>
<dxg:GridColumn Header="
预览更新时间" ReadOnly="True"
<dxg:GridColumn Header="预览更新时间" ReadOnly="True
">
AllowResizing="False" Width="100
">
<dxg:GridColumn.CellTemplate>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Row.PreviewUpdateTime,StringFormat=
yyyy-MM-dd
hh:mm:ss}"
<TextBlock Text="{Binding Path=Row.PreviewUpdateTime,StringFormat=hh:mm:ss}"
VerticalAlignment="Center"></TextBlock>
VerticalAlignment="Center"></TextBlock>
</DataTemplate>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridColumn>
<dxg:GridColumn Header="更新时间" ReadOnly="True">
<dxg:GridColumn Header="版子更新时间" ReadOnly="True"
AllowResizing="False" Width="100">
<dxg:GridColumn.CellTemplate>
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Row.TakeUpdateTime,StringFormat=
yyyy-MM-dd
hh:mm:ss}"
<TextBlock Text="{Binding Path=Row.TakeUpdateTime,StringFormat=hh:mm:ss}"
VerticalAlignment="Center"></TextBlock>
VerticalAlignment="Center"></TextBlock>
</DataTemplate>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridColumn>
<dxg:GridColumn Header="是否启用" FieldName="IsEnabled" AllowSorting="False" AllowColumnFiltering="False">
<dxg:GridColumn Header="更新预览" FieldName="IsPreviewEnabled" AllowSorting="False" AllowColumnFiltering="False"
AllowResizing="False" Width="80">
<dxg:GridColumn.EditSettings>
<dxg:GridColumn.EditSettings>
<dxe:CheckEditSettings
HorizontalContentAlignment="Left"
></dxe:CheckEditSettings>
<dxe:CheckEditSettings></dxe:CheckEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridColumn>
<dxg:GridColumn Header="更新版子" FieldName="IsTakeEnabled" AllowSorting="False" AllowColumnFiltering="False"
AllowResizing="False" Width="80">
<dxg:GridColumn.EditSettings>
<dxe:CheckEditSettings></dxe:CheckEditSettings>
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn Header="任务信息" FieldName="Status" ReadOnly="True" AllowSorting="False" AllowColumnFiltering="False"
AllowResizing="False" Width="80">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<Image Width="20" Height="20" Margin="0,3,0,3" HorizontalAlignment="Center" VerticalAlignment="Center"
Source="/VIZ.Package.Module.Resource;component/Icons/message_32x32.png"
ToolTip="{Binding Path=Row.ErrorMessage}"
Visibility="{Binding Path=Row.ErrorMessage,Converter={StaticResource StringNotNull2VisibilityConverter}}"></Image>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
<dxg:GridColumn AllowSorting="False" AllowColumnFiltering="False"
AllowResizing="False" Width="100">
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<fcommon:IconButton Style="{StaticResource IconButton_Menu_Mask}"
Icon="/VIZ.Package.Module.Resource;component/Icons/icon_play_32x32.png"
IsEnabled="{Binding Path=Row.IsRunning,Converter={StaticResource Bool2BoolConverter}}"
Command="{Binding ElementName=uc,Path=DataContext.StartCommand}"
CommandParameter="{Binding Row}"></fcommon:IconButton>
<fcommon:IconButton Style="{StaticResource IconButton_Menu_Mask}" Margin="10,0,0,0"
Icon="/VIZ.Package.Module.Resource;component/Icons/icon_pause_32x32.png"
IsEnabled="{Binding Path=Row.IsRunning}"
Command="{Binding ElementName=uc,Path=DataContext.StopCommand}"
CommandParameter="{Binding Row}"></fcommon:IconButton>
</StackPanel>
</DataTemplate>
</dxg:GridColumn.CellTemplate>
</dxg:GridColumn>
</dxg:GridControl.Columns>
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:GridControl.View>
<dxg:TableView IsColumnMenuEnabled="False"
<dxg:TableView IsColumnMenuEnabled="False"
...
...
VIZ.Package.Module/Task/PackageTask/ViewModel/PackageTaskViewModel.cs
View file @
d6db8bbe
...
@@ -17,7 +17,7 @@ namespace VIZ.Package.Module
...
@@ -17,7 +17,7 @@ namespace VIZ.Package.Module
/// <summary>
/// <summary>
/// 包装任务视图模型
/// 包装任务视图模型
/// </summary>
/// </summary>
public
class
PackageTaskViewModel
:
ViewModelBase
,
IPackageTaskService
,
IPackageTaskInterface
public
class
PackageTaskViewModel
:
ViewModelBase
,
IPackageTaskService
{
{
/// <summary>
/// <summary>
/// 日志
/// 日志
...
@@ -38,7 +38,8 @@ namespace VIZ.Package.Module
...
@@ -38,7 +38,8 @@ namespace VIZ.Package.Module
/// </summary>
/// </summary>
private
void
InitCommand
()
private
void
InitCommand
()
{
{
this
.
StartCommand
=
new
VCommand
<
PackageTaskModel
>(
this
.
Start
);
this
.
StopCommand
=
new
VCommand
<
PackageTaskModel
>(
this
.
Stop
);
}
}
// ==============================================================
// ==============================================================
...
@@ -77,6 +78,41 @@ namespace VIZ.Package.Module
...
@@ -77,6 +78,41 @@ namespace VIZ.Package.Module
// Command
// Command
// ==============================================================
// ==============================================================
#
region
StartCommand
--
开始命令
/// <summary>
/// 开始命令
/// </summary>
public
VCommand
<
PackageTaskModel
>
StartCommand
{
get
;
set
;
}
/// <summary>
/// 开始
/// </summary>
/// <param name="task">任务</param>
private
void
Start
(
PackageTaskModel
task
)
{
task
.
IsRunning
=
true
;
}
#
endregion
#
region
StopCommand
--
停止命令
/// <summary>
/// 停止命令
/// </summary>
public
VCommand
<
PackageTaskModel
>
StopCommand
{
get
;
set
;
}
/// <summary>
/// 停止
/// </summary>
/// <param name="task">任务</param>
private
void
Stop
(
PackageTaskModel
task
)
{
task
.
IsRunning
=
false
;
}
#
endregion
// ==============================================================
// ==============================================================
// Public Function
// Public Function
...
@@ -93,9 +129,75 @@ namespace VIZ.Package.Module
...
@@ -93,9 +129,75 @@ namespace VIZ.Package.Module
if
(
this
.
ItemsSource
.
Contains
(
task
))
if
(
this
.
ItemsSource
.
Contains
(
task
))
return
;
return
;
task
.
PackageTaskInterface
=
this
;
this
.
ItemsSource
.
Add
(
task
);
this
.
ItemsSource
.
Add
(
task
);
string
key
=
$"PackageTask_
{
task
.
ID
}
"
;
task
.
TimerInfo
=
ApplicationDomainEx
.
TimerManager
.
Register
(
key
,
task
.
Interval
,
()
=>
{
// 任务没有在运行状态 || 任务不可以执行
if
(!
task
.
IsRunning
||
!
task
.
CanExecute
)
return
;
// 上预览
if
(
task
.
IsPreviewEnabled
&&
ApplicationDomainEx
.
PreviewConn
!=
null
&&
ApplicationDomainEx
.
PreviewConn
.
IsConnected
)
{
try
{
task
.
PreviewUpdateAction
(
ApplicationDomainEx
.
PreviewConn
);
WPFHelper
.
Invoke
(()
=>
{
task
.
PreviewUpdateTime
=
DateTime
.
Now
;
});
}
catch
(
Exception
ex
)
{
log
.
Error
(
ex
);
WPFHelper
.
Invoke
(()
=>
{
task
.
ErrorMessage
=
ex
.
Message
;
});
}
}
// 上版
if
(
task
.
IsTakeEnabled
)
{
IPluginService
pluginService
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IPluginService
>(
ViewServiceKeys
.
PLUGIN_SERVICE
);
if
(
pluginService
==
null
)
return
;
PageModel
page
=
pluginService
.
GetPageModelFromView
(
task
.
View
);
if
(
page
==
null
)
return
;
ConnGroupModel
group
=
ApplicationDomainEx
.
ConnGroups
.
FirstOrDefault
(
p
=>
p
.
GroupID
==
page
.
ConnGroupID
);
if
(
group
==
null
)
return
;
foreach
(
var
item
in
group
.
Items
)
{
if
(!
item
.
IsEnabled
||
!
item
.
IsConnected
)
continue
;
try
{
task
.
TakeUpdateAction
(
item
);
WPFHelper
.
Invoke
(()
=>
{
task
.
TakeUpdateTime
=
DateTime
.
Now
;
});
}
catch
(
Exception
ex
)
{
log
.
Error
(
ex
);
WPFHelper
.
Invoke
(()
=>
{
task
.
ErrorMessage
=
ex
.
Message
;
});
}
}
}
});
}
}
}
}
...
@@ -109,70 +211,14 @@ namespace VIZ.Package.Module
...
@@ -109,70 +211,14 @@ namespace VIZ.Package.Module
{
{
if
(
this
.
ItemsSource
.
Contains
(
task
))
if
(
this
.
ItemsSource
.
Contains
(
task
))
{
{
task
.
IsEnabled
=
false
;
string
key
=
$"PackageTask_
{
task
.
ID
}
"
;
ApplicationDomainEx
.
TimerManager
.
UnRegister
(
key
);
this
.
ItemsSource
.
Remove
(
task
);
this
.
ItemsSource
.
Remove
(
task
);
}
}
}
/// <summary>
task
.
TimerInfo
?.
Dispose
();
/// 预览更新
/// </summary>
/// <param name="task">任务</param>
public
void
PreviewUpdate
(
PackageTaskModel
task
)
{
try
{
task
.
PreviewUpdateAction
(
ApplicationDomainEx
.
PreviewConn
);
}
catch
(
Exception
ex
)
{
log
.
Error
(
ex
);
}
}
/// <summary>
/// 上版更新
/// </summary>
/// <param name="task">任务</param>
public
void
TakeUpdate
(
PackageTaskModel
task
)
{
IPluginService
pluginService
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IPluginService
>(
ViewServiceKeys
.
PLUGIN_SERVICE
);
if
(
pluginService
==
null
)
return
;
PageModel
page
=
pluginService
.
GetPageModelFromView
(
task
.
View
);
if
(
page
==
null
)
return
;
ConnGroupModel
group
=
ApplicationDomainEx
.
ConnGroups
.
FirstOrDefault
(
p
=>
p
.
GroupID
==
page
.
ConnGroupID
);
if
(
group
==
null
)
return
;
foreach
(
var
item
in
group
.
Items
)
{
if
(!
item
.
IsEnabled
||
!
item
.
IsConnected
)
continue
;
try
{
task
.
TakeUpdateAction
(
item
);
}
catch
(
Exception
ex
)
{
log
.
Error
(
ex
);
}
}
}
}
}
}
/// <summary>
/// 销毁
/// </summary>
/// <param name="task">任务</param>
public
void
Dispose
(
PackageTaskModel
task
)
{
this
.
Cancel
(
task
);
}
}
}
}
}
\ No newline at end of file
VIZ.Package.TestPlugin/Page/TestPageView.xaml
View file @
d6db8bbe
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
mc:Ignorable="d"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid>
<Button Width="240" Height="60" Click="Button_Click" Content="包装任务触发"></Button>
<TextBlock Text="测试插件" VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="Red" FontSize="36"></TextBlock>
</Grid>
</Grid>
</UserControl>
</UserControl>
VIZ.Package.TestPlugin/Page/TestPageView.xaml.cs
View file @
d6db8bbe
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Linq
;
using
System.Linq
;
using
System.Text
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
...
@@ -40,6 +41,10 @@ namespace VIZ.Package.TestPlugin
...
@@ -40,6 +41,10 @@ namespace VIZ.Package.TestPlugin
return
;
return
;
this
.
task
=
new
PackageTaskModel
(
this
);
this
.
task
=
new
PackageTaskModel
(
this
);
this
.
task
.
IsPreviewEnabled
=
true
;
this
.
task
.
IsTakeEnabled
=
true
;
this
.
task
.
IsRunning
=
true
;
this
.
task
.
ErrorMessage
=
"this is a try."
;
this
.
task
.
PreviewUpdateAction
=
this
.
OnPreviewUpdate
;
this
.
task
.
PreviewUpdateAction
=
this
.
OnPreviewUpdate
;
this
.
task
.
TakeUpdateAction
=
this
.
OnTakeUpdate
;
this
.
task
.
TakeUpdateAction
=
this
.
OnTakeUpdate
;
...
@@ -52,12 +57,12 @@ namespace VIZ.Package.TestPlugin
...
@@ -52,12 +57,12 @@ namespace VIZ.Package.TestPlugin
private
void
OnPreviewUpdate
(
ConnModel
conn
)
private
void
OnPreviewUpdate
(
ConnModel
conn
)
{
{
Debug
.
WriteLine
(
$"PreviewUpdate"
);
}
}
private
void
OnTakeUpdate
(
ConnModel
conn
)
private
void
OnTakeUpdate
(
ConnModel
conn
)
{
{
Debug
.
WriteLine
(
$"TakeUpdate"
);
}
}
/// <summary>
/// <summary>
...
@@ -114,10 +119,5 @@ namespace VIZ.Package.TestPlugin
...
@@ -114,10 +119,5 @@ namespace VIZ.Package.TestPlugin
/// </summary>
/// </summary>
public
void
Dispose
()
public
void
Dispose
()
{
}
{
}
private
void
Button_Click
(
object
sender
,
RoutedEventArgs
e
)
{
this
.
task
?.
PreviewUpdate
();
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment