规范化前端组件命名

This commit is contained in:
PeterZhong 2025-04-27 12:06:01 +08:00
parent 3ec94c7fa1
commit d655680fde
11 changed files with 128 additions and 38 deletions

1
.gitignore vendored
View File

@ -7,6 +7,7 @@
./vs/ ./vs/
./bin/ ./bin/
./obj/ ./obj/
./Properties/launchSettings.json
*.sln.iml *.sln.iml
*.DotSettings *.DotSettings
*.dotCover *.dotCover

View File

@ -11,34 +11,39 @@
Content, Framework, Editing, Geodatabase, Geometry, Geoprocessing, Layouts, Map Authoring, Map Exploration --> Content, Framework, Editing, Geodatabase, Geometry, Geoprocessing, Layouts, Map Authoring, Map Exploration -->
</AddInInfo> </AddInInfo>
<modules> <modules>
<insertModule id="LinkToolAddin_Module" className="Module1" autoLoad="false" caption="Module1"> <insertModule id="LinkToolAddin_Module" className="LinkToolModule" autoLoad="false" caption="LinkTool">
<!-- uncomment to have the control hosted on a separate tab--> <!-- uncomment to have the control hosted on a separate tab-->
<tabs> <tabs>
<tab id="LinkToolAddin_Tab1" caption="LinkTool"> <tab id="LinkToolAddin_Tab1" caption="LinkTool">
<group refID="LinkToolAddin_Group1" /> <group refID="CoreGroup" />
<group refID="PreferenceGroup" />
</tab> </tab>
</tabs> </tabs>
<groups> <groups>
<!-- comment this out if you have no controls on the Addin tab to avoid <!-- comment this out if you have no controls on the Addin tab to avoid
an empty group--> an empty group-->
<group id="LinkToolAddin_Group1" caption="LinkTool核心" appearsOnAddInTab="false"> <group id="CoreGroup" caption="核心功能" appearsOnAddInTab="false">
<!-- host controls within groups --> <button refID="DialogDockpane_ShowButton" size="large" />
<button refID="LinkToolAddin_Dockpane1_ShowButton" size="large" /> <button refID="Version_Button" size="large" />
<button refID="LinkToolAddin_Button1" size="large" /> </group>
<group id="PreferenceGroup" caption="设置项" appearsOnAddInTab="false">
<button refID="Preference_Button" size="large" />
</group> </group>
</groups> </groups>
<controls> <controls>
<!-- add your controls here --> <button id="Version_Button" caption="版本信息" className="VersionButton" loadOnClick="true" smallImage="GenericButtonBlue16" largeImage="GenericButtonBlue32">
<button id="LinkToolAddin_Dockpane1_ShowButton" caption="打开对话面板" className="Dockpane1_ShowButton" loadOnClick="true" smallImage="GenericButtonPurple16" largeImage="GenericButtonPurple32">
<tooltip heading="打开对话面板">打开LinkTool对话面板你可以通过与AI对话完成一系列地理处理操作<disabledText /></tooltip>
</button>
<button id="LinkToolAddin_Button1" caption="版本信息" className="Button1" loadOnClick="true" smallImage="GenericButtonBlue16" largeImage="GenericButtonBlue32">
<tooltip heading="版本信息">点击查看LinkTool插件版本号<disabledText /></tooltip> <tooltip heading="版本信息">点击查看LinkTool插件版本号<disabledText /></tooltip>
</button> </button>
<button id="Preference_Button" caption="偏好设置" className="LinkToolAddin.ui.preference.ShowProWindow1" loadOnClick="true" smallImage="GenericButtonPurple16" largeImage="GenericButtonPurple32">
<tooltip heading="偏好设置">大模型相关参数设置<disabledText /></tooltip>
</button>
<button id="DialogDockpane_ShowButton" caption="对话面板" className="LinkToolAddin.ui.dockpane.DialogDockpane_ShowButton" loadOnClick="true" smallImage="GenericButtonPurple16" largeImage="GenericButtonPurple32">
<tooltip heading="对话面板">打开AI对话面板<disabledText /></tooltip>
</button>
</controls> </controls>
<dockPanes> <dockPanes>
<dockPane id="LinkToolAddin_Dockpane1" caption="LinkTool" className="Dockpane1ViewModel" dock="group" dockWith="esri_core_projectDockPane"> <dockPane id="DialogDockpane" caption="LinkTool" className="LinkToolAddin.ui.dockpane.DialogDockpaneViewModel" dock="group" dockWith="esri_core_projectDockPane">
<content className="Dockpane1View" /> <content className="LinkToolAddin.ui.dockpane.DialogDockpaneView" />
</dockPane> </dockPane>
</dockPanes> </dockPanes>
</insertModule> </insertModule>

View File

@ -101,14 +101,6 @@
<Folder Include="client\" /> <Folder Include="client\" />
<Folder Include="resource\" /> <Folder Include="resource\" />
<Folder Include="server\" /> <Folder Include="server\" />
<Folder Include="ui\preference\" />
</ItemGroup>
<ItemGroup>
<Page Update="ui\Dockpane1.xaml">
<Generator>MSBuild:Compile</Generator>
<XamlRuntime>Wpf</XamlRuntime>
<SubType>Designer</SubType>
</Page>
</ItemGroup> </ItemGroup>
<Import Project="C:\Users\PeterZhong\AppData\Local\Programs\ArcGIS\Pro\bin\Esri.ProApp.SDK.Desktop.targets" Condition="Exists('C:\Users\PeterZhong\AppData\Local\Programs\ArcGIS\Pro\bin\Esri.ProApp.SDK.Desktop.targets') AND !Exists('Esri.ArcGISPro.Extensions.targets')" /> <Import Project="C:\Users\PeterZhong\AppData\Local\Programs\ArcGIS\Pro\bin\Esri.ProApp.SDK.Desktop.targets" Condition="Exists('C:\Users\PeterZhong\AppData\Local\Programs\ArcGIS\Pro\bin\Esri.ProApp.SDK.Desktop.targets') AND !Exists('Esri.ArcGISPro.Extensions.targets')" />
</Project> </Project>

View File

@ -21,14 +21,14 @@ using System.Windows.Input;
namespace LinkToolAddin namespace LinkToolAddin
{ {
internal class Module1 : Module internal class LinkToolModule : Module
{ {
private static Module1 _this = null; private static LinkToolModule _this = null;
/// <summary> /// <summary>
/// Retrieve the singleton instance to this module here /// Retrieve the singleton instance to this module here
/// </summary> /// </summary>
public static Module1 Current => _this ??= (Module1)FrameworkApplication.FindModule("LinkToolAddin_Module"); public static LinkToolModule Current => _this ??= (LinkToolModule)FrameworkApplication.FindModule("LinkToolAddin_Module");
#region Overrides #region Overrides
/// <summary> /// <summary>

View File

@ -20,7 +20,7 @@ using System.Threading.Tasks;
namespace LinkToolAddin namespace LinkToolAddin
{ {
internal class Button1 : Button internal class VersionButton : Button
{ {
private string version = "0.1.0"; private string version = "0.1.0";
protected override void OnClick() protected override void OnClick()

View File

@ -1,14 +1,14 @@
<UserControl x:Class="LinkToolAddin.Dockpane1View" <UserControl x:Class="LinkToolAddin.ui.dockpane.DialogDockpaneView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ui="clr-namespace:LinkToolAddin" xmlns:ui="clr-namespace:LinkToolAddin.ui.dockpane"
xmlns:extensions="clr-namespace:ArcGIS.Desktop.Extensions;assembly=ArcGIS.Desktop.Extensions" xmlns:extensions="clr-namespace:ArcGIS.Desktop.Extensions;assembly=ArcGIS.Desktop.Extensions"
xmlns:controls="clr-namespace:ArcGIS.Desktop.Framework.Controls;assembly=ArcGIS.Desktop.Framework" xmlns:controls="clr-namespace:ArcGIS.Desktop.Framework.Controls;assembly=ArcGIS.Desktop.Framework"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300" d:DesignHeight="300" d:DesignWidth="300"
d:DataContext="{Binding Path=ui.Dockpane1ViewModel}"> d:DataContext="{Binding Path=ui.DialogDockpaneViewModel}">
<UserControl.Resources> <UserControl.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>

View File

@ -14,14 +14,14 @@ using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
namespace LinkToolAddin namespace LinkToolAddin.ui.dockpane
{ {
/// <summary> /// <summary>
/// Interaction logic for Dockpane1View.xaml /// Interaction logic for DialogDockpaneView.xaml
/// </summary> /// </summary>
public partial class Dockpane1View : UserControl public partial class DialogDockpaneView : UserControl
{ {
public Dockpane1View() public DialogDockpaneView()
{ {
InitializeComponent(); InitializeComponent();
} }

View File

@ -18,13 +18,13 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace LinkToolAddin namespace LinkToolAddin.ui.dockpane
{ {
internal class Dockpane1ViewModel : DockPane internal class DialogDockpaneViewModel : DockPane
{ {
private const string _dockPaneID = "LinkToolAddin_Dockpane1"; private const string _dockPaneID = "DialogDockpane";
protected Dockpane1ViewModel() { } protected DialogDockpaneViewModel() { }
/// <summary> /// <summary>
/// Show the DockPane. /// Show the DockPane.
@ -52,11 +52,11 @@ namespace LinkToolAddin
/// <summary> /// <summary>
/// Button implementation to show the DockPane. /// Button implementation to show the DockPane.
/// </summary> /// </summary>
internal class Dockpane1_ShowButton : Button internal class DialogDockpane_ShowButton : Button
{ {
protected override void OnClick() protected override void OnClick()
{ {
Dockpane1ViewModel.Show(); DialogDockpaneViewModel.Show();
} }
} }
} }

View File

@ -0,0 +1,22 @@
<controls:ProWindow x:Class="LinkToolAddin.ui.preference.ProWindow1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:controls="clr-namespace:ArcGIS.Desktop.Framework.Controls;assembly=ArcGIS.Desktop.Framework"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:extensions="clr-namespace:ArcGIS.Desktop.Extensions;assembly=ArcGIS.Desktop.Extensions"
mc:Ignorable="d"
Title="LinkTool首选项" Height="300" Width="300"
WindowStartupLocation="CenterOwner"
>
<controls:ProWindow.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<extensions:DesignOnlyResourceDictionary Source="pack://application:,,,/ArcGIS.Desktop.Framework;component\Themes\Default.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</controls:ProWindow.Resources>
<Grid>
</Grid>
</controls:ProWindow>

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace LinkToolAddin.ui.preference
{
/// <summary>
/// Interaction logic for ProWindow1.xaml
/// </summary>
public partial class ProWindow1 : ArcGIS.Desktop.Framework.Controls.ProWindow
{
public ProWindow1()
{
InitializeComponent();
}
}
}

View File

@ -0,0 +1,42 @@
using ArcGIS.Core.CIM;
using ArcGIS.Core.Data;
using ArcGIS.Core.Geometry;
using ArcGIS.Desktop.Catalog;
using ArcGIS.Desktop.Core;
using ArcGIS.Desktop.Editing;
using ArcGIS.Desktop.Extensions;
using ArcGIS.Desktop.Framework;
using ArcGIS.Desktop.Framework.Contracts;
using ArcGIS.Desktop.Framework.Dialogs;
using ArcGIS.Desktop.Framework.Threading.Tasks;
using ArcGIS.Desktop.KnowledgeGraph;
using ArcGIS.Desktop.Layouts;
using ArcGIS.Desktop.Mapping;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LinkToolAddin.ui.preference
{
internal class ShowProWindow1 : Button
{
private ProWindow1 _prowindow1 = null;
protected override void OnClick()
{
//already open?
if (_prowindow1 != null)
return;
_prowindow1 = new ProWindow1();
_prowindow1.Owner = FrameworkApplication.Current.MainWindow;
_prowindow1.Closed += (o, e) => { _prowindow1 = null; };
_prowindow1.Show();
//uncomment for modal
//_prowindow1.ShowDialog();
}
}
}