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
759db348
Commit
759db348
authored
Feb 16, 2023
by
liulongfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
模板和场景多选模式
parent
a6d01dbb
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
311 additions
and
237 deletions
+311
-237
VIZ.Package.Domain/ApplicationDomainEx.cs
+0
-5
VIZ.Package.Domain/Message/Page/PageDeleteMessage.cs
+2
-2
VIZ.Package.Domain/Model/Page/PageGroupModel.cs
+19
-0
VIZ.Package.Module/Main/ViewModel/MainViewModel.cs
+0
-8
VIZ.Package.Module/Page/Core/Helper/PageViewModelHelper.cs
+110
-0
VIZ.Package.Module/Page/Core/View/PageLoadingWindow.xaml
+1
-1
VIZ.Package.Module/Page/Core/View/PageLoadingWindow.xaml.cs
+3
-11
VIZ.Package.Module/Page/Group/View/PageGroupView.xaml
+4
-2
VIZ.Package.Module/Page/Group/ViewModel/PageGroupViewModel.cs
+91
-85
VIZ.Package.Module/Page/Templage/View/PageTemplateView.xaml
+2
-2
VIZ.Package.Module/Page/Templage/ViewModel/PageTemplateViewModel.cs
+68
-114
VIZ.Package.Module/Plugin/ViewModel/PluginViewModel.cs
+5
-2
VIZ.Package.Module/Task/PackageTask/ViewModel/PackageTaskViewModel.cs
+2
-2
VIZ.Package.Module/VIZ.Package.Module.csproj
+4
-3
No files found.
VIZ.Package.Domain/ApplicationDomainEx.cs
View file @
759db348
...
...
@@ -36,11 +36,6 @@ namespace VIZ.Package.Domain
public
static
Type
MainWindowType
{
get
;
set
;
}
/// <summary>
/// 主等待窗口
/// </summary>
public
static
Window
MainLoadingWindow
{
get
;
set
;
}
/// <summary>
/// 字段编辑窗口
/// </summary>
public
static
Window
FieldEditWindow
{
get
;
set
;
}
...
...
VIZ.Package.Domain/Message/Page/PageDeleteMessage.cs
View file @
759db348
...
...
@@ -12,8 +12,8 @@ namespace VIZ.Package.Domain
public
class
PageDeleteMessage
{
/// <summary>
///
页
///
删除的页集合
/// </summary>
public
PageModelBase
Page
{
get
;
set
;
}
public
List
<
PageModelBase
>
Pages
{
get
;
set
;
}
}
}
VIZ.Package.Domain/Model/Page/PageGroupModel.cs
View file @
759db348
using
System
;
using
System.Collections
;
using
System.Collections.Generic
;
using
System.Collections.ObjectModel
;
using
System.Linq
;
...
...
@@ -68,5 +69,23 @@ namespace VIZ.Package.Domain
}
#
endregion
// ===========================================================
// 扩展属性
// ===========================================================
#
region
SelectedPages
--
当前选中的页集合
private
IList
selectedPages
;
/// <summary>
/// 当前选中的页集合
/// </summary>
public
IList
SelectedPages
{
get
{
return
selectedPages
;
}
set
{
selectedPages
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
SelectedPages
));
}
}
#
endregion
}
}
VIZ.Package.Module/Main/ViewModel/MainViewModel.cs
View file @
759db348
...
...
@@ -198,14 +198,6 @@ namespace VIZ.Package.Module
public
void
SetIsEnabled
(
bool
isEnabled
)
{
this
.
IsEnabled
=
isEnabled
;
if
(
ApplicationDomainEx
.
MainLoadingWindow
==
null
)
{
ApplicationDomainEx
.
MainLoadingWindow
=
new
MainLoadingWindow
();
ApplicationDomainEx
.
MainLoadingWindow
.
Owner
=
ApplicationDomainEx
.
MainWindow
;
}
ApplicationDomainEx
.
MainLoadingWindow
.
Visibility
=
isEnabled
?
System
.
Windows
.
Visibility
.
Collapsed
:
System
.
Windows
.
Visibility
.
Visible
;
}
// ============================================================
...
...
VIZ.Package.Module/Page/Core/Helper/PageViewModelHelper.cs
0 → 100644
View file @
759db348
using
DevExpress.XtraPrinting.Native
;
using
log4net
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
VIZ.Framework.Core
;
using
VIZ.Package.Domain
;
using
VIZ.Package.Service
;
namespace
VIZ.Package.Module
{
/// <summary>
/// 页视图模型辅助类
/// </summary>
public
class
PageViewModelHelper
{
/// <summary>
/// 日志
/// </summary>
private
readonly
static
ILog
log
=
LogManager
.
GetLogger
(
typeof
(
PageViewModelHelper
));
/// <summary>
/// GH服务
/// </summary>
private
GHService
ghService
=
new
GHService
();
/// <summary>
/// Viz控制对象下载服务
/// </summary>
private
VizControlObjectDownloadService
vizControlObjectDownloadService
=
new
VizControlObjectDownloadService
();
/// <summary>
/// 开始下载图片任务
/// </summary>
/// <param name="pages">页集合</param>
public
void
BeginDownLoadIamge
(
List
<
PageModelBase
>
pages
)
{
ThreadHelper
.
SafeRun
(()
=>
{
foreach
(
PageModelBase
page
in
pages
)
{
if
(
page
.
ThumbnailBitmap
!=
null
)
continue
;
if
(
string
.
IsNullOrWhiteSpace
(
page
.
ThumbnailUri
))
continue
;
var
bitmap
=
this
.
ghService
.
GetImage
(
page
.
ThumbnailUri
);
WPFHelper
.
BeginInvoke
(()
=>
{
page
.
ThumbnailBitmap
=
bitmap
;
});
}
});
}
/// <summary>
/// 开始下载控制对象
/// </summary>
/// <param name="pages">页集合</param>
/// <param name="callback">下载完成回调</param>
public
void
BeginDownLoadControlObject
(
List
<
PageModelBase
>
pages
,
Action
callback
)
{
if
(
pages
==
null
||
pages
.
Count
==
0
)
return
;
PageLoadingWindow
window
=
new
PageLoadingWindow
();
window
.
Owner
=
ApplicationDomainEx
.
MainWindow
;
Task
.
Run
(()
=>
{
IMainViewService
service
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IMainViewService
>(
ViewServiceKeys
.
MAIN_VIEW_SERVICE
);
// 设置主窗口不可用
WPFHelper
.
Invoke
(()
=>
{
ApplicationDomainEx
.
IsSceneLoading
=
true
;
service
?.
SetIsEnabled
(
false
);
window
?.
Show
();
});
// 下载页控制对象信息
try
{
this
.
vizControlObjectDownloadService
.
Load
(
pages
);
}
catch
(
Exception
ex
)
{
log
.
Error
(
ex
);
}
finally
{
// 恢复主窗口可用
WPFHelper
.
Invoke
(()
=>
{
ApplicationDomainEx
.
IsSceneLoading
=
false
;
service
?.
SetIsEnabled
(
true
);
window
?.
Close
();
// 回调
callback
?.
Invoke
();
});
}
});
}
}
}
VIZ.Package.Module/
Main/View/Main
LoadingWindow.xaml
→
VIZ.Package.Module/
Page/Core/View/Page
LoadingWindow.xaml
View file @
759db348
<Window x:Class="VIZ.Package.Module.
Main
LoadingWindow"
<Window x:Class="VIZ.Package.Module.
Page
LoadingWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
...
...
VIZ.Package.Module/
Main/View/Main
LoadingWindow.xaml.cs
→
VIZ.Package.Module/
Page/Core/View/Page
LoadingWindow.xaml.cs
View file @
759db348
...
...
@@ -16,21 +16,13 @@ using System.Windows.Shapes;
namespace
VIZ.Package.Module
{
/// <summary>
/// Interaction logic for
Main
LoadingWindow.xaml
/// Interaction logic for
Page
LoadingWindow.xaml
/// </summary>
public
partial
class
Main
LoadingWindow
:
Window
public
partial
class
Page
LoadingWindow
:
Window
{
public
Main
LoadingWindow
()
public
Page
LoadingWindow
()
{
InitializeComponent
();
this
.
Closing
+=
MainLoadingWindow_Closing
;
}
private
void
MainLoadingWindow_Closing
(
object
sender
,
System
.
ComponentModel
.
CancelEventArgs
e
)
{
e
.
Cancel
=
true
;
this
.
Visibility
=
Visibility
.
Collapsed
;
}
}
}
VIZ.Package.Module/Page/Group/View/PageGroupView.xaml
View file @
759db348
...
...
@@ -39,6 +39,8 @@
<MenuItem Header="新建分组" Command="{Binding Path=PlacementTarget.DataContext.AddGroupCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
<MenuItem Header="重命名分组" Command="{Binding Path=PlacementTarget.DataContext.RenameGroupCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
<Separator></Separator>
<MenuItem Header="更新页" Command="{Binding Path=PlacementTarget.DataContext.UpdateCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
<Separator></Separator>
<MenuItem Header="删除分组" Command="{Binding Path=PlacementTarget.DataContext.DeleteGroupCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
<MenuItem Header="删除节目单项" Command="{Binding Path=PlacementTarget.DataContext.DeleteItemCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
</ContextMenu>
...
...
@@ -62,8 +64,8 @@
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<dxg:GridControl ItemsSource="{Binding Pa
ges}" ShowBorder="False" IsFilterEnabled="False
"
SelectedItem
="{Binding ElementName=uc, Path=DataContext.SelectedPageModel,Mode=TwoWay
}">
<dxg:GridControl ItemsSource="{Binding Pa
th=Pages}" ShowBorder="False" IsFilterEnabled="False" SelectionMode="Row
"
SelectedItem
s="{Binding Path=SelectedPages,Mode=OneWayToSource
}">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="编号" AllowSorting="False" AllowColumnFiltering="False" AllowResizing="True"
FieldName="PageNum">
...
...
VIZ.Package.Module/Page/Group/ViewModel/PageGroupViewModel.cs
View file @
759db348
...
...
@@ -47,6 +47,7 @@ namespace VIZ.Package.Module
this
.
DeleteGroupCommand
=
new
VCommand
(
this
.
DeleteGroup
);
this
.
DeleteItemCommand
=
new
VCommand
(
this
.
DeleteItem
);
this
.
OpenPageCommand
=
new
VCommand
(
this
.
OpenPage
);
this
.
UpdateCommand
=
new
VCommand
(
this
.
Update
);
}
/// <summary>
...
...
@@ -66,6 +67,11 @@ namespace VIZ.Package.Module
// ======================================================================================
/// <summary>
/// 页视图模型辅助类
/// </summary>
private
PageViewModelHelper
pageViewModelHelper
=
new
PageViewModelHelper
();
/// <summary>
/// 页服务
/// </summary>
private
PageService
pageService
=
new
PageService
();
...
...
@@ -135,27 +141,7 @@ namespace VIZ.Package.Module
public
PageGroupModel
SelectedPageGroupModel
{
get
{
return
selectedPageGroupModel
;
}
set
{
selectedPageGroupModel
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
SelectedPageGroupModel
));
this
.
SelectedPageModel
=
null
;
}
}
#
endregion
#
region
SelectedPageModel
--
当前选中的页
private
PageModel
selectedPageModel
;
/// <summary>
/// 当前选中的页
/// </summary>
public
PageModel
SelectedPageModel
{
get
{
return
selectedPageModel
;
}
set
{
selectedPageModel
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
SelectedPageModel
));
}
set
{
selectedPageGroupModel
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
SelectedPageGroupModel
));
}
}
#
endregion
...
...
@@ -283,17 +269,28 @@ namespace VIZ.Package.Module
/// </summary>
private
void
DeleteItem
()
{
if
(
this
.
SelectedPageGroupModel
==
null
||
this
.
SelectedPageModel
==
null
)
if
(
this
.
SelectedPageGroupModel
==
null
)
return
;
if
(
this
.
SelectedPageGroupModel
.
SelectedPages
==
null
||
this
.
SelectedPageGroupModel
.
Pages
.
Count
==
0
)
return
;
if
(
DXMessageBox
.
Show
(
$"是否删除项
【
{
this
.
SelectedPageModel
.
Scene
}
】
"
,
"提示"
,
MessageBoxButton
.
YesNo
)
!=
MessageBoxResult
.
Yes
)
if
(
DXMessageBox
.
Show
(
$"是否删除项"
,
"提示"
,
MessageBoxButton
.
YesNo
)
!=
MessageBoxResult
.
Yes
)
return
;
PageModel
page
=
this
.
SelectedPageModel
;
this
.
SelectedPageGroupModel
.
Pages
.
Remove
(
this
.
SelectedPageModel
);
List
<
PageModel
>
pages
=
new
List
<
PageModel
>();
foreach
(
PageModel
page
in
this
.
SelectedPageGroupModel
.
SelectedPages
)
{
pages
.
Add
(
page
);
}
foreach
(
PageModel
page
in
pages
)
{
this
.
SelectedPageGroupModel
.
Pages
.
Remove
(
page
);
}
PageDeleteMessage
msg
=
new
PageDeleteMessage
();
msg
.
Page
=
page
;
msg
.
Page
s
=
pages
.
ToList
<
PageModelBase
>()
;
ApplicationDomainEx
.
MessageManager
.
Send
(
msg
);
}
...
...
@@ -307,21 +304,59 @@ namespace VIZ.Package.Module
public
VCommand
OpenPageCommand
{
get
;
set
;
}
/// <summary>
/// 打开
场景
页
/// 打开页
/// </summary>
private
void
OpenPage
()
{
if
(
this
.
SelectedPageModel
==
null
)
if
(
this
.
SelectedPage
Group
Model
==
null
)
return
;
if
(
ApplicationDomainEx
.
CurrentPage
==
this
.
SelectedPageModel
)
if
(
this
.
SelectedPageGroupModel
.
SelectedPages
==
null
||
this
.
SelectedPageGroupModel
.
SelectedPages
.
Count
==
0
)
return
;
ApplicationDomainEx
.
CurrentPage
=
this
.
SelectedPageModel
;
PageModel
page
=
this
.
SelectedPageGroupModel
.
SelectedPages
[
0
]
as
PageModel
;
this
.
OpenPage
(
page
);
}
PageOpenMessage
msg
=
new
PageOpenMessage
();
msg
.
Page
=
this
.
SelectedPageModel
;
ApplicationDomainEx
.
MessageManager
.
Send
(
msg
);
#
endregion
#
region
UpdateCommand
--
更新命令
/// <summary>
/// 更新命令
/// </summary>
public
VCommand
UpdateCommand
{
get
;
set
;
}
/// <summary>
/// 更新
/// </summary>
private
void
Update
()
{
if
(
this
.
SelectedPageGroupModel
==
null
)
return
;
if
(
this
.
SelectedPageGroupModel
.
SelectedPages
==
null
||
this
.
SelectedPageGroupModel
.
SelectedPages
.
Count
==
0
)
return
;
List
<
PageModelBase
>
pages
=
new
List
<
PageModelBase
>();
foreach
(
PageModelBase
page
in
this
.
SelectedPageGroupModel
.
SelectedPages
)
{
pages
.
Add
(
page
);
}
// 开始下载图片
this
.
pageViewModelHelper
.
BeginDownLoadIamge
(
pages
);
// 开始下载控制对象
this
.
pageViewModelHelper
.
BeginDownLoadControlObject
(
pages
,
()
=>
{
// 控制对象下载完成后打开最后一个模板
PageModel
last
=
pages
.
LastOrDefault
()
as
PageModel
;
if
(
last
==
null
)
return
;
this
.
OpenPage
(
last
);
});
}
#
endregion
...
...
@@ -339,7 +374,6 @@ namespace VIZ.Package.Module
this
.
IsEnabled
=
true
;
this
.
PageGroupModels
=
null
;
this
.
SelectedPageGroupModel
=
null
;
this
.
SelectedPageModel
=
null
;
this
.
IsLoading
=
true
;
this
.
UpdateConnGroups
();
...
...
@@ -362,7 +396,7 @@ namespace VIZ.Package.Module
return
;
// 获取场景模板缩略图
this
.
BeginDownLoadIamge
(
this
.
SelectedPageGroupModel
.
Pages
.
ToList
<
PageModelBase
>());
this
.
pageViewModelHelper
.
BeginDownLoadIamge
(
this
.
SelectedPageGroupModel
.
Pages
.
ToList
<
PageModelBase
>());
});
}
...
...
@@ -376,7 +410,6 @@ namespace VIZ.Package.Module
this
.
IsLoading
=
false
;
this
.
PageGroupModels
=
null
;
this
.
SelectedPageGroupModel
=
null
;
this
.
SelectedPageModel
=
null
;
}
/// <summary>
...
...
@@ -471,35 +504,33 @@ namespace VIZ.Package.Module
/// <returns>页</returns>
public
PageModel
CopyPage
()
{
if
(
this
.
SelectedPageGroupModel
==
null
||
this
.
SelectedPageModel
==
null
)
return
null
;
// 当前没有打开的页
if
(
ApplicationDomainEx
.
CurrentPage
==
null
)
// 当前打开的页为页模型时可以被拷贝
PageModel
srcPage
=
ApplicationDomainEx
.
CurrentPage
as
PageModel
;
if
(
srcPage
==
null
)
return
null
;
PageModel
page
=
new
PageModel
();
page
.
PageID
=
Guid
.
NewGuid
();
page
.
PageGroupID
=
this
.
SelectedPageGroupModel
.
GroupID
;
page
.
Scene
=
this
.
SelectedPageModel
.
Scene
;
page
.
ScenePath
=
this
.
SelectedPageModel
.
ScenePath
;
page
.
ThumbnailUri
=
this
.
SelectedPageModel
.
ThumbnailUri
;
page
.
Remark
=
this
.
SelectedPageModel
.
Remark
;
page
.
Layer
=
this
.
SelectedPageModel
.
Layer
;
page
.
EngineType
=
this
.
SelectedPageModel
.
EngineType
;
page
.
PageType
=
this
.
SelectedPageModel
.
PageType
;
page
.
TemplateID
=
this
.
SelectedPageModel
.
TemplateID
;
page
.
ThumbnailBitmap
=
this
.
SelectedPageModel
.
ThumbnailBitmap
;
page
.
PluginID
=
this
.
SelectedPageModel
.
PluginID
;
page
.
PluginName
=
this
.
SelectedPageModel
.
PluginName
;
page
.
ConnGroupID
=
this
.
SelectedPageModel
.
ConnGroupID
;
page
.
PageGroupID
=
srcPage
.
Page
GroupID
;
page
.
Scene
=
srcPage
.
Scene
;
page
.
ScenePath
=
srcPage
.
ScenePath
;
page
.
ThumbnailUri
=
srcPage
.
ThumbnailUri
;
page
.
Remark
=
srcPage
.
Remark
;
page
.
Layer
=
srcPage
.
Layer
;
page
.
EngineType
=
srcPage
.
EngineType
;
page
.
PageType
=
srcPage
.
PageType
;
page
.
TemplateID
=
srcPage
.
TemplateID
;
page
.
ThumbnailBitmap
=
srcPage
.
ThumbnailBitmap
;
page
.
PluginID
=
srcPage
.
PluginID
;
page
.
PluginName
=
srcPage
.
PluginName
;
page
.
ConnGroupID
=
srcPage
.
ConnGroupID
;
page
.
PageNum
=
this
.
SelectedPageGroupModel
.
Pages
.
Max
(
p
=>
p
.
PageNum
)
+
1
;
// 将模板控制对象拷贝值页控制对象
this
.
controlObjectService
.
CopyControlObjects
(
this
.
SelectedPageModel
.
PageID
,
page
.
PageID
);
this
.
controlObjectService
.
CopyControlObjects
(
srcPage
.
PageID
,
page
.
PageID
);
// 将模板控制字段拷贝至页控制字段
this
.
controlObjectService
.
CopyControlFields
(
this
.
SelectedPageModel
.
PageID
,
page
.
PageID
);
this
.
controlObjectService
.
CopyControlFields
(
srcPage
.
PageID
,
page
.
PageID
);
// 添加页
this
.
SelectedPageGroupModel
.
Pages
.
Add
(
page
);
...
...
@@ -531,10 +562,11 @@ namespace VIZ.Package.Module
if
(
group
==
null
)
return
;
this
.
SelectedPageGroupModel
=
group
;
this
.
SelectedPageModel
=
page
;
ApplicationDomainEx
.
CurrentPage
=
page
;
this
.
OpenPage
();
PageOpenMessage
msg
=
new
PageOpenMessage
();
msg
.
Page
=
page
;
ApplicationDomainEx
.
MessageManager
.
Send
(
msg
);
}
/// <summary>
...
...
@@ -568,31 +600,5 @@ namespace VIZ.Package.Module
// ======================================================================================
// Private Function
// ======================================================================================
/// <summary>
/// 开始下载图片任务
/// </summary>
/// <param name="pages">页集合</param>
private
void
BeginDownLoadIamge
(
List
<
PageModelBase
>
pages
)
{
ThreadHelper
.
SafeRun
(()
=>
{
foreach
(
PageModelBase
page
in
pages
)
{
if
(
page
.
ThumbnailBitmap
!=
null
)
continue
;
if
(
string
.
IsNullOrWhiteSpace
(
page
.
ThumbnailUri
))
continue
;
var
bitmap
=
this
.
ghService
.
GetImage
(
page
.
ThumbnailUri
);
WPFHelper
.
BeginInvoke
(()
=>
{
page
.
ThumbnailBitmap
=
bitmap
;
});
}
});
}
}
}
VIZ.Package.Module/Page/Templage/View/PageTemplateView.xaml
View file @
759db348
...
...
@@ -27,8 +27,8 @@
</UserControl.Resources>
<Grid IsEnabled="{Binding Path=IsEnabled}" Margin="0,10,0,10">
<dxg:GridControl ItemsSource="{Binding Path=SceneTemplateModels}" ShowBorder="False"
SelectedItem
="{Binding Path=SelectedSceneTemplateModel,Mode=TwoWay
}">
<dxg:GridControl ItemsSource="{Binding Path=SceneTemplateModels}" ShowBorder="False"
SelectionMode="Row"
SelectedItem
s="{Binding Path=SelectedSceneTemplateModels,Mode=OneWayToSource
}">
<dxg:GridControl.ContextMenu>
<ContextMenu>
<MenuItem Header="打开" Command="{Binding Path=PlacementTarget.DataContext.OpenScenePageCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
...
...
VIZ.Package.Module/Page/Templage/ViewModel/PageTemplateViewModel.cs
View file @
759db348
using
DevExpress.Xpf.Core
;
using
log4net
;
using
System
;
using
System.Collections
;
using
System.Collections.Generic
;
using
System.Collections.ObjectModel
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Web.UI
;
using
System.Windows.Controls.Primitives
;
using
VIZ.Framework.Core
;
using
VIZ.Package.Domain
;
...
...
@@ -62,6 +64,11 @@ namespace VIZ.Package.Module
// ======================================================================================
/// <summary>
/// 页视图模型辅助类
/// </summary>
private
PageViewModelHelper
pageViewModelHelper
=
new
PageViewModelHelper
();
/// <summary>
/// GH服务
/// </summary>
private
GHService
ghService
=
new
GHService
();
...
...
@@ -137,16 +144,16 @@ namespace VIZ.Package.Module
#
endregion
#
region
SelectedSceneTemplateModel
--
当前选中的场景模板模型
#
region
SelectedSceneTemplateModel
s
--
当前选中的场景模板集合
private
PageTemplateModel
selectedSceneTemplateModel
;
private
IList
selectedSceneTemplateModels
;
/// <summary>
/// 当前选中的场景模板
模型
/// 当前选中的场景模板
集合
/// </summary>
public
PageTemplateModel
SelectedSceneTemplateModel
public
IList
SelectedSceneTemplateModels
{
get
{
return
selectedSceneTemplateModel
;
}
set
{
selectedSceneTemplateModel
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
SelectedSceneTemplateModel
));
}
get
{
return
selectedSceneTemplateModel
s
;
}
set
{
selectedSceneTemplateModel
s
=
value
;
this
.
RaisePropertyChanged
(
nameof
(
SelectedSceneTemplateModels
));
}
}
#
endregion
...
...
@@ -167,14 +174,17 @@ namespace VIZ.Package.Module
/// </summary>
private
void
AddToPageGroup
()
{
if
(
this
.
SelectedSceneTemplateModel
==
null
)
if
(
this
.
SelectedSceneTemplateModel
s
==
null
||
this
.
SelectedSceneTemplateModels
.
Count
==
0
)
return
;
IPageGroupService
service
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IPageGroupService
>(
ViewServiceKeys
.
PAGE_GROUP_SERVICE
);
if
(
service
==
null
)
return
;
service
.
AddPage
(
this
.
SelectedSceneTemplateModel
);
foreach
(
PageTemplateModel
template
in
this
.
SelectedSceneTemplateModels
)
{
service
.
AddPage
(
template
);
}
}
#
endregion
...
...
@@ -191,16 +201,23 @@ namespace VIZ.Package.Module
/// </summary>
private
void
OpenScenePage
()
{
if
(
this
.
SelectedSceneTemplateModel
==
null
)
if
(
this
.
SelectedSceneTemplateModel
s
==
null
||
this
.
SelectedSceneTemplateModels
.
Count
==
0
)
return
;
if
(
ApplicationDomainEx
.
CurrentPage
==
this
.
SelectedSceneTemplateModel
)
return
;
PageTemplateModel
template
=
this
.
SelectedSceneTemplateModels
[
0
]
as
PageTemplateModel
;
this
.
OpenScenePage
(
template
);
}
ApplicationDomainEx
.
CurrentPage
=
this
.
SelectedSceneTemplateModel
;
/// <summary>
/// 打开模板
/// </summary>
/// <param name="page">页</param>
private
void
OpenScenePage
(
PageModelBase
page
)
{
ApplicationDomainEx
.
CurrentPage
=
page
;
PageOpenMessage
msg
=
new
PageOpenMessage
();
msg
.
Page
=
this
.
SelectedSceneTemplateModel
;
msg
.
Page
=
page
;
ApplicationDomainEx
.
MessageManager
.
Send
(
msg
);
}
...
...
@@ -218,41 +235,27 @@ namespace VIZ.Package.Module
/// </summary>
private
void
Update
()
{
if
(
this
.
SelectedSceneTemplateModel
==
null
)
if
(
this
.
SelectedSceneTemplateModel
s
==
null
||
this
.
SelectedSceneTemplateModels
.
Count
==
0
)
return
;
IFieldTreeService
service
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IFieldTreeService
>(
ViewServiceKeys
.
FIELD_TREE_SERVICE
);
if
(
service
==
null
)
return
;
this
.
IsLoading
=
true
;
ThreadHelper
.
SafeRun
(
action
:
()
=>
List
<
PageModelBase
>
templates
=
new
List
<
PageModelBase
>();
foreach
(
PageTemplateModel
template
in
this
.
SelectedSceneTemplateModels
)
{
// 重新加载版子
this
.
vizCommandService
.
Reload
(
ApplicationDomainEx
.
PreviewConn
,
this
.
SelectedSceneTemplateModel
.
ScenePath
);
// 获取控制对象
ControlObjectModel
controlObject
=
this
.
vizCommandControlObjectService
.
GetControlObject
(
ApplicationDomainEx
.
PreviewConn
);
templates
.
Add
(
template
);
}
// 将控制字段写入数据库
this
.
controlObjectService
.
SaveControlFields
(
this
.
SelectedSceneTemplateModel
,
controlObject
.
AllFiledNodes
);
;
// 开始下载图片
this
.
pageViewModelHelper
.
BeginDownLoadIamge
(
templates
)
;
// 如果当前打开的项目是该模板,那么从新打开
if
(
ApplicationDomainEx
.
CurrentPage
==
this
.
SelectedSceneTemplateModel
)
{
WPFHelper
.
Invoke
(()
=>
{
this
.
OpenScenePage
();
});
}
},
final
:
()
=>
{
WPFHelper
.
BeginInvoke
(()
=>
// 开始下载控制对象
this
.
pageViewModelHelper
.
BeginDownLoadControlObject
(
templates
,
()
=>
{
this
.
IsLoading
=
false
;
});
// 控制对象下载完成后打开最后一个模板
PageModelBase
last
=
templates
.
LastOrDefault
();
if
(
last
==
null
)
return
;
this
.
OpenScenePage
(
last
);
});
}
...
...
@@ -270,13 +273,21 @@ namespace VIZ.Package.Module
/// </summary>
private
void
Delete
()
{
if
(
this
.
SelectedSceneTemplateModel
==
null
)
if
(
this
.
SelectedSceneTemplateModel
s
==
null
||
this
.
SelectedSceneTemplateModels
.
Count
==
0
)
return
;
if
(
DXMessageBox
.
Show
(
$"是否删除模板
【
{
this
.
SelectedSceneTemplateModel
.
Scene
}
】
?"
,
"提示"
,
System
.
Windows
.
MessageBoxButton
.
YesNo
)
!=
System
.
Windows
.
MessageBoxResult
.
Yes
)
if
(
DXMessageBox
.
Show
(
$"是否删除模板?"
,
"提示"
,
System
.
Windows
.
MessageBoxButton
.
YesNo
)
!=
System
.
Windows
.
MessageBoxResult
.
Yes
)
return
;
this
.
SceneTemplateModels
.
Remove
(
this
.
SelectedSceneTemplateModel
);
List
<
PageTemplateModel
>
templates
=
new
List
<
PageTemplateModel
>();
foreach
(
PageTemplateModel
template
in
this
.
SelectedSceneTemplateModels
)
{
templates
.
Add
(
template
);
}
foreach
(
PageTemplateModel
template
in
templates
)
{
this
.
SceneTemplateModels
.
Remove
(
template
);
}
}
#
endregion
...
...
@@ -293,7 +304,6 @@ namespace VIZ.Package.Module
{
this
.
IsEnabled
=
true
;
this
.
SceneTemplateModels
=
null
;
this
.
SelectedSceneTemplateModel
=
null
;
this
.
IsLoading
=
true
;
ThreadHelper
.
SafeRun
(()
=>
...
...
@@ -310,7 +320,7 @@ namespace VIZ.Package.Module
});
// 获取场景模板缩略图
this
.
BeginDownLoadIamge
(
sceneTemplateModels
.
ToList
<
PageModelBase
>());
this
.
pageViewModelHelper
.
BeginDownLoadIamge
(
sceneTemplateModels
.
ToList
<
PageModelBase
>());
});
}
...
...
@@ -323,7 +333,6 @@ namespace VIZ.Package.Module
this
.
IsEnabled
=
false
;
this
.
IsLoading
=
false
;
this
.
SceneTemplateModels
=
null
;
this
.
SelectedSceneTemplateModel
=
null
;
}
/// <summary>
...
...
@@ -368,78 +377,22 @@ namespace VIZ.Package.Module
}
// 开始下载缩略图
this
.
BeginDownLoadIamge
(
list
);
this
.
pageViewModelHelper
.
BeginDownLoadIamge
(
list
);
// 开始下载控制对象
this
.
BeginDownLoadControlObject
(
list
);
}
// ======================================================================================
// Private Function
// ======================================================================================
/// <summary>
/// 开始下载图片任务
/// </summary>
/// <param name="pages">页集合</param>
private
void
BeginDownLoadIamge
(
List
<
PageModelBase
>
pages
)
{
ThreadHelper
.
SafeRun
(()
=>
this
.
pageViewModelHelper
.
BeginDownLoadControlObject
(
list
,
()
=>
{
foreach
(
PageModelBase
page
in
pages
)
{
if
(
page
.
ThumbnailBitmap
!=
null
)
continue
;
if
(
string
.
IsNullOrWhiteSpace
(
page
.
ThumbnailUri
))
continue
;
var
bitmap
=
this
.
ghService
.
GetImage
(
page
.
ThumbnailUri
);
// 控制对象下载完成后打开最后一个模板
PageModelBase
last
=
list
.
LastOrDefault
();
if
(
last
==
null
)
return
;
WPFHelper
.
BeginInvoke
(()
=>
{
page
.
ThumbnailBitmap
=
bitmap
;
this
.
OpenScenePage
(
last
);
});
}
});
}
/// <summary>
/// 开始下载控制对象
/// </summary>
/// <param name="pages">页集合</param>
private
void
BeginDownLoadControlObject
(
List
<
PageModelBase
>
pages
)
{
Task
.
Run
(()
=>
{
IMainViewService
service
=
ApplicationDomainEx
.
ServiceManager
.
GetService
<
IMainViewService
>(
ViewServiceKeys
.
MAIN_VIEW_SERVICE
);
// 设置主窗口不可用
WPFHelper
.
Invoke
(()
=>
{
ApplicationDomainEx
.
IsSceneLoading
=
true
;
service
?.
SetIsEnabled
(
false
);
});
// 下载页控制对象信息
try
{
this
.
vizControlObjectDownloadService
.
Load
(
pages
);
}
catch
(
Exception
ex
)
{
log
.
Error
(
ex
);
}
finally
{
// 恢复主窗口可用
WPFHelper
.
Invoke
(()
=>
{
ApplicationDomainEx
.
IsSceneLoading
=
false
;
service
?.
SetIsEnabled
(
true
);
});
}
});
}
// ======================================================================================
// Private Function
// ======================================================================================
}
}
\ No newline at end of file
VIZ.Package.Module/Plugin/ViewModel/PluginViewModel.cs
View file @
759db348
...
...
@@ -203,15 +203,18 @@ namespace VIZ.Package.Module
/// <param name="msg">消息</param>
private
void
OnPageDeleteMessage
(
PageDeleteMessage
msg
)
{
if
(
msg
.
Page
==
null
)
if
(
msg
.
Page
s
==
null
||
msg
.
Pages
.
Count
==
0
)
return
;
PluginNavigationConfig
config
=
this
.
ItemsSource
.
FirstOrDefault
(
p
=>
p
.
PageModel
==
msg
.
Page
);
foreach
(
PageModelBase
page
in
msg
.
Pages
)
{
PluginNavigationConfig
config
=
this
.
ItemsSource
.
FirstOrDefault
(
p
=>
p
.
PageModel
==
page
);
if
(
config
==
null
)
return
;
this
.
ItemsSource
.
Remove
(
config
);
}
}
/// <summary>
/// 页分组删除消息
...
...
VIZ.Package.Module/Task/PackageTask/ViewModel/PackageTaskViewModel.cs
View file @
759db348
...
...
@@ -137,10 +137,10 @@ namespace VIZ.Package.Module
/// <param name="msg">消息</param>
private
void
OnPageDeleteMessage
(
PageDeleteMessage
msg
)
{
if
(
msg
.
Page
==
null
)
if
(
msg
.
Page
s
==
null
||
msg
.
Pages
.
Count
==
0
)
return
;
var
query
=
this
.
ItemsSource
.
Where
(
p
=>
p
.
PageModel
==
msg
.
Page
).
ToList
();
var
query
=
this
.
ItemsSource
.
Where
(
p
=>
msg
.
Pages
.
Contains
(
p
.
PageModel
)
).
ToList
();
foreach
(
PackageTaskModel
task
in
query
)
{
this
.
Cancel
(
task
);
...
...
VIZ.Package.Module/VIZ.Package.Module.csproj
View file @
759db348
...
...
@@ -118,8 +118,9 @@
<Compile Include="ControlObject\FieldEdit\ViewModel\FieldEditViewModelBase.cs" />
<Compile Include="ControlObject\FieldTree\Service\IFieldTreeService.cs" />
<Compile Include="Log\ViewModel\VizCommandWindowModel.cs" />
<Compile Include="Main\View\MainLoadingWindow.xaml.cs">
<DependentUpon>MainLoadingWindow.xaml</DependentUpon>
<Compile Include="Page\Core\Helper\PageViewModelHelper.cs" />
<Compile Include="Page\Core\View\PageLoadingWindow.xaml.cs">
<DependentUpon>PageLoadingWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Main\ViewModel\MainConnViewModel.cs" />
<Compile Include="Main\View\MainConnView.xaml.cs">
...
...
@@ -402,7 +403,7 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="
Main\View\Main
LoadingWindow.xaml">
<Page Include="
Page\Core\View\Page
LoadingWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
...
...
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