Procházet zdrojové kódy

更新了nuget库,登录模块放到了一个ChildWindow里面

tanghai před 13 roky
rodič
revize
9543fd6526

+ 2 - 2
CSharp/App/DataCenter/DataCenter.csproj

@@ -35,9 +35,9 @@
     <Reference Include="EntityFramework">
       <HintPath>..\..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll</HintPath>
     </Reference>
-    <Reference Include="MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
+    <Reference Include="MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\packages\MySql.Data.6.5.4\lib\net40\MySql.Data.dll</HintPath>
+      <HintPath>..\..\packages\MySql.Data.6.6.4\lib\net40\MySql.Data.dll</HintPath>
     </Reference>
     <Reference Include="MySql.Data.Entity, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>

+ 1 - 1
CSharp/App/DataCenter/Packages.config

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
   <package id="EntityFramework" version="5.0.0" targetFramework="net45" />
-  <package id="MySql.Data" version="6.5.4" targetFramework="net45" />
+  <package id="MySql.Data" version="6.6.4" targetFramework="net45" />
   <package id="MySQL.Data.Entities" version="6.5.4.0" targetFramework="net45" />
 </packages>

+ 3 - 3
CSharp/App/Editor/Shell.xaml

@@ -3,8 +3,8 @@
 		xmlns:prism="http://www.codeplex.com/prism" Title="Editor" Height="800" Width="1280"
 		WindowStartupLocation="CenterScreen">
 	<Grid>
-		<!--<ContentControl Name="robot" prism:RegionManager.RegionName="RobotRegion" />-->
-		<TabControl>
+		<ContentControl Name="robot" prism:RegionManager.RegionName="RobotRegion" />
+		<!--<TabControl>
 			<TabItem Height="25" Width="80" Header="机器人">
 				<ContentControl Name="robot" prism:RegionManager.RegionName="RobotRegion" />
 			</TabItem>
@@ -14,6 +14,6 @@
 			<TabItem Height="25" Width="80" Header="外挂">
 				<ContentControl Name="waigua" prism:RegionManager.RegionName="WaiGuaRegion" />
 			</TabItem>
-		</TabControl>
+		</TabControl>-->
 	</Grid>
 </Window>

+ 24 - 20
CSharp/App/Editor/app.config

@@ -1,21 +1,25 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="utf-8"?>
 <configuration>
-	<runtime>
-		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-			<dependentAssembly>
-				<assemblyIdentity name="Microsoft.Practices.Prism" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
-				<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"/>
-			</dependentAssembly>
-		</assemblyBinding>
-	</runtime>
-	<startup>
-		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
-	</startup>
-	<connectionStrings>
-		<add name="DataCenterEntities" connectionString="metadata=res://*/DataCenter.csdl|res://*/DataCenter.ssdl|res://*/DataCenter.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=192.168.11.93;user id=tanghai;password=tanghai;persist security info=True;database=tanghai&quot;" providerName="System.Data.EntityClient" />
-	</connectionStrings>
-	<appSettings>
-		<add key="IP" value="192.168.11.95"/>
-		<add key="Port" value="8888"/>
-	</appSettings>
-</configuration>
+  <runtime>
+    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+      <dependentAssembly>
+        <assemblyIdentity name="Microsoft.Practices.Prism" publicKeyToken="31bf3856ad364e35" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
+      </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-6.6.4.0" newVersion="6.6.4.0" />
+      </dependentAssembly>
+    </assemblyBinding>
+  </runtime>
+  <startup>
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+  </startup>
+  <connectionStrings>
+    <add name="DataCenterEntities" connectionString="metadata=res://*/DataCenter.csdl|res://*/DataCenter.ssdl|res://*/DataCenter.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=192.168.11.93;user id=tanghai;password=tanghai;persist security info=True;database=tanghai&quot;" providerName="System.Data.EntityClient" />
+  </connectionStrings>
+  <appSettings>
+    <add key="IP" value="192.168.11.95" />
+    <add key="Port" value="8888" />
+  </appSettings>
+</configuration>

+ 30 - 0
CSharp/App/Modules/Robot/LoginView.xaml

@@ -0,0 +1,30 @@
+<UserControl x:Class="Modules.Robot.LoginView"
+		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" 
+		xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
+		xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" 
+		mc:Ignorable="d" 
+		d:DesignHeight="300" d:DesignWidth="300">
+	<Grid>
+		<xctk:ChildWindow Name="cwLoginWindow"  Visibility="{Binding GridLoginVisiable}" 
+				HorizontalAlignment="Center" VerticalAlignment="Center" CloseButtonVisibility="Hidden">
+			<Grid Name="gridLogin"  Width="200" Height="120" >
+				<Grid.RowDefinitions>
+					<RowDefinition></RowDefinition>
+					<RowDefinition></RowDefinition>
+					<RowDefinition></RowDefinition>
+				</Grid.RowDefinitions>
+				<Grid.ColumnDefinitions>
+					<ColumnDefinition Width="10*"></ColumnDefinition>
+					<ColumnDefinition Width="40*"></ColumnDefinition>
+				</Grid.ColumnDefinitions>
+				<Label Content="帐号: " Grid.Row="0" Grid.Column="0" Margin="0,8"/>
+				<TextBox Text="{Binding Account}" Grid.Row="0" Grid.Column="1" Margin="0,8,0,8" />
+				<Label Content="密码: " Grid.Row="1" Grid.Column="0" Margin="0,8"/>
+				<TextBox Text="{Binding Password}" Grid.Row="1" Grid.Column="1" Margin="0,8,0,8" />
+				<Button Name="btnLogin" Content="登录" Click="btnLogin_Click" Grid.Row="2" Grid.Column="1" Margin="12,8" />
+			</Grid>
+		</xctk:ChildWindow>
+	</Grid>
+</UserControl>

+ 36 - 0
CSharp/App/Modules/Robot/LoginView.xaml.cs

@@ -0,0 +1,36 @@
+using System.ComponentModel.Composition;
+using System.Windows;
+using Infrastructure;
+
+namespace Modules.Robot
+{
+	/// <summary>
+	/// LoginView.xaml 的交互逻辑
+	/// </summary>
+	// [ViewExport(RegionName = "RobotRegion"), PartCreationPolicy(CreationPolicy.Shared)]
+	public partial class LoginView
+	{
+		public LoginView()
+		{
+			InitializeComponent();
+		}
+
+		[Import]
+		private RobotViewModel ViewModel
+		{
+			get
+			{
+				return this.DataContext as RobotViewModel;
+			}
+			set
+			{
+				this.DataContext = value;
+			}
+		}
+
+		private void btnLogin_Click(object sender, RoutedEventArgs e)
+		{
+			this.ViewModel.Login();
+		}
+	}
+}

+ 2 - 1
CSharp/App/Modules/Robot/Packages.config

@@ -2,7 +2,8 @@
 <packages>
   <package id="CommonServiceLocator" version="1.0" targetFramework="net45" />
   <package id="EntityFramework" version="5.0.0" targetFramework="net45" />
-  <package id="MySql.Data" version="6.5.4" targetFramework="net45" />
+  <package id="Extended.Wpf.Toolkit" version="1.9.0" targetFramework="net45" />
+  <package id="MySql.Data" version="6.6.4" targetFramework="net45" />
   <package id="MySQL.Data.Entities" version="6.5.4.0" targetFramework="net45" />
   <package id="Prism" version="4.1.0.0" targetFramework="net45" />
   <package id="Prism.MEFExtensions" version="4.1.0.0" targetFramework="net45" />

+ 17 - 2
CSharp/App/Modules/Robot/Robot.csproj

@@ -43,9 +43,9 @@
     <Reference Include="Microsoft.Practices.Prism.MefExtensions">
       <HintPath>..\..\..\packages\Prism.MEFExtensions.4.1.0.0\lib\NET40\Microsoft.Practices.Prism.MefExtensions.dll</HintPath>
     </Reference>
-    <Reference Include="MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
+    <Reference Include="MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\..\packages\MySql.Data.6.5.4\lib\net40\MySql.Data.dll</HintPath>
+      <HintPath>..\..\..\packages\MySql.Data.6.6.4\lib\net40\MySql.Data.dll</HintPath>
     </Reference>
     <Reference Include="MySql.Data.Entity, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -71,8 +71,19 @@
     <Reference Include="UIAutomationProvider" />
     <Reference Include="UIAutomationTypes" />
     <Reference Include="WindowsBase" />
+    <Reference Include="Xceed.Wpf.DataGrid, Version=1.9.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.1.9.0\lib\net40\Xceed.Wpf.DataGrid.dll</HintPath>
+    </Reference>
+    <Reference Include="Xceed.Wpf.Toolkit, Version=1.9.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\packages\Extended.Wpf.Toolkit.1.9.0\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="LoginView.xaml.cs">
+      <DependentUpon>LoginView.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Robot.cs" />
     <Compile Include="RobotModule.cs" />
     <Compile Include="RobotViewModel.cs" />
@@ -82,6 +93,10 @@
     <Compile Include="ServerViewModel.cs" />
   </ItemGroup>
   <ItemGroup>
+    <Page Include="LoginView.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
     <Page Include="RobotView.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>

+ 29 - 15
CSharp/App/Modules/Robot/RobotView.xaml

@@ -3,32 +3,46 @@
 		xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 		xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 		xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
-		xmlns:Robot="clr-namespace:Modules.Robot"
-		mc:Ignorable="d" 
+		xmlns:Robot="clr-namespace:Modules.Robot" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" mc:Ignorable="d" 
 		d:DesignHeight="600" d:DesignWidth="1280" d:DataContext="{d:DesignInstance Robot:RobotViewModel}">
 	<Grid>
-		<DockPanel>
+		<xctk:ChildWindow Name="cwLoginWindow"  Visibility="{Binding GridLoginVisiable}" 
+				HorizontalAlignment="Center" VerticalAlignment="Center" CloseButtonVisibility="Hidden">
+			<Grid Name="gridLogin"  Width="200" Height="120" >
+				<Grid.RowDefinitions>
+					<RowDefinition></RowDefinition>
+					<RowDefinition></RowDefinition>
+					<RowDefinition></RowDefinition>
+				</Grid.RowDefinitions>
+				<Grid.ColumnDefinitions>
+					<ColumnDefinition Width="10*"></ColumnDefinition>
+					<ColumnDefinition Width="40*"></ColumnDefinition>
+				</Grid.ColumnDefinitions>
+				<Label Content="帐号: " Grid.Row="0" Grid.Column="0" Margin="0,8"/>
+				<TextBox Text="{Binding Account}" Grid.Row="0" Grid.Column="1" Margin="0,8,0,8" />
+				<Label Content="密码: " Grid.Row="1" Grid.Column="0" Margin="0,8"/>
+				<TextBox Text="{Binding Password}" Grid.Row="1" Grid.Column="1" Margin="0,8,0,8" />
+				<Button Name="btnLogin" Content="登录" Click="btnLogin_Click" Grid.Row="2" Grid.Column="1" Margin="12,8" />
+			</Grid>
+		</xctk:ChildWindow>
+
+		<DockPanel Name="dock" Visibility="{Binding DockPanelVisiable}">
+			<Menu DockPanel.Dock="Top" >
+				<MenuItem Header="登录" Name="menuLogin" Click="menuLogin_Click" ></MenuItem>
+			</Menu>
 			<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Height="27" >
-				<Label Content="Account: "></Label>
-				<TextBox Width="120" Text="{Binding Account}" />
-				<Label Content="Password: "></Label>
-				<TextBox Width="120" Text="{Binding Password}" />
-				<Button Name="btnLogin" Content="登录" Width="80" Click="btnLogin_Click" />
-				<Button Name="btnServers" Content="服务器列表" Click="btnServers_Click" 
-						IsEnabled="{Binding IsButtonEnable}"></Button>
-				<Button Name="btnReload" Content="Reload" Click="btnReload_Click" 
-						IsEnabled="{Binding IsButtonEnable}"></Button>
+				<Button Name="btnServers" Content="服务器列表" Click="btnServers_Click" ></Button>
+				<Button Name="btnReload" Content="Reload" Click="btnReload_Click" ></Button>
 				<ComboBox Name="cbFindType" SelectedIndex="{Binding FindTypeIndex}">
 					<ComboBoxItem Content="帐号"></ComboBoxItem>
 					<ComboBoxItem Content="名字"></ComboBoxItem>
 					<ComboBoxItem Content="GUID"></ComboBoxItem>
 				</ComboBox>
 				<TextBox Width="120" Text="{Binding FindType}" />
-				<Button Name="btnFind" Content="查询" Click="btnFind_Click" 
-						IsEnabled="{Binding IsButtonEnable}"></Button>
+				<Button Name="btnFind" Content="查询" Click="btnFind_Click" ></Button>
 			</StackPanel>
 			<ListBox Width="100" SelectionMode="Multiple" ItemsSource="{Binding ServerInfos}" 
-					d:DataContext="{d:DesignInstance Robot:RobotViewModel}">
+					d:DataContext="{d:DesignInstance Robot:RobotViewModel}" >
 				<ListBox.ItemTemplate>
 					<DataTemplate>
 						<Label Content="{Binding Name}" ></Label>

+ 5 - 0
CSharp/App/Modules/Robot/RobotView.xaml.cs

@@ -47,5 +47,10 @@ namespace Modules.Robot
 		{
 			this.ViewModel.Find();
 		}
+
+		private void menuLogin_Click(object sender, RoutedEventArgs e)
+		{
+			this.ViewModel.GridLoginVisiable = Visibility.Visible;
+		}
 	}
 }

+ 29 - 9
CSharp/App/Modules/Robot/RobotViewModel.cs

@@ -4,6 +4,7 @@ using System.Collections.ObjectModel;
 using System.ComponentModel.Composition;
 using System.Configuration;
 using System.Linq;
+using System.Windows;
 using System.Windows.Threading;
 using BossClient;
 using DataCenter;
@@ -14,14 +15,15 @@ using Microsoft.Practices.Prism.ViewModel;
 namespace Modules.Robot
 {
 	[Export(contractType: typeof (RobotViewModel)),
-		PartCreationPolicy(creationPolicy: CreationPolicy.NonShared)]
+		PartCreationPolicy(creationPolicy: CreationPolicy.Shared)]
 	internal sealed class RobotViewModel: NotificationObject, IDisposable
 	{
 		private string account = "egametang@163.com";
 		private string password = "163bio1";
 		private int findTypeIndex;
 		private string findType = "";
-		private bool isButtonEnable;
+		private Visibility dockPanelVisiable = Visibility.Hidden;
+		private Visibility gridLoginVisiable = Visibility.Visible;
 		private readonly BossClient.BossClient bossClient = new BossClient.BossClient();
 		private readonly ObservableCollection<ServerViewModel> serverInfos = 
 			new ObservableCollection<ServerViewModel>();
@@ -100,20 +102,37 @@ namespace Modules.Robot
 			}
 		}
 
-		public bool IsButtonEnable
+		public Visibility DockPanelVisiable
 		{
 			get
 			{
-				return this.isButtonEnable;
+				return this.dockPanelVisiable;
 			}
 			set
 			{
-				if (this.isButtonEnable == value)
+				if (this.dockPanelVisiable == value)
 				{
 					return;
 				}
-				this.isButtonEnable = value;
-				this.RaisePropertyChanged("IsButtonEnable");
+				this.dockPanelVisiable = value;
+				this.RaisePropertyChanged("DockPanelVisiable");
+			}
+		}
+
+		public Visibility GridLoginVisiable
+		{
+			get
+			{
+				return this.gridLoginVisiable;
+			}
+			set
+			{
+				if (this.gridLoginVisiable == value)
+				{
+					return;
+				}
+				this.gridLoginVisiable = value;
+				this.RaisePropertyChanged("GridLoginVisiable");
 			}
 		}
 
@@ -156,7 +175,8 @@ namespace Modules.Robot
 			ushort port = UInt16.Parse(ConfigurationManager.AppSettings["Port"]);
 			await this.bossClient.Login(ip, port, this.Account, this.Password);
 
-			this.IsButtonEnable = true;
+			this.DockPanelVisiable = Visibility.Visible;
+			this.GridLoginVisiable = Visibility.Hidden;
 
 			this.HandleMessages();
 		}
@@ -180,7 +200,7 @@ namespace Modules.Robot
 			}
 			catch (Exception e)
 			{
-				this.IsButtonEnable = false;
+				this.dockPanelVisiable = Visibility.Hidden;
 				Logger.Trace(e.ToString());
 			}
 		}