Skip to content

Commit dcdf753

Browse files
committed
修改封装tabpage
1 parent e2dc80a commit dcdf753

File tree

13 files changed

+848
-597
lines changed

13 files changed

+848
-597
lines changed

FreesqlGenCode.sln

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "Common\Common.csp
1717
EndProject
1818
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RazorTemplates", "RazorTemplates", "{7C1CFD24-E5BC-4C40-9BDC-192E8130F28B}"
1919
ProjectSection(SolutionItems) = preProject
20+
GenTemplate\Templates\BllClassTemplate.cshtml = GenTemplate\Templates\BllClassTemplate.cshtml
21+
GenTemplate\Templates\DalClassTemplate.cshtml = GenTemplate\Templates\DalClassTemplate.cshtml
2022
GenTemplate\Templates\EntityClassTemplate.cshtml = GenTemplate\Templates\EntityClassTemplate.cshtml
2123
EndProjectSection
2224
EndProject
23-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenTemplate", "GenTemplate\GenTemplate.csproj", "{1C848E5F-64CB-4590-AA6C-DFC90C12C003}"
25+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GenTemplate", "GenTemplate\GenTemplate.csproj", "{1C848E5F-64CB-4590-AA6C-DFC90C12C003}"
2426
EndProject
2527
Global
2628
GlobalSection(SolutionConfigurationPlatforms) = preSolution

FreesqlGenCode/Form1.Designer.cs

Lines changed: 60 additions & 413 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FreesqlGenCode/Form1.cs

Lines changed: 74 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22
using Common;
33
using Context;
44
using DataDefine;
5+
using FreesqlGenCode.controls;
56
using Model;
7+
using System.Windows.Forms;
8+
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
69

710
namespace FreesqlGenCode
811
{
@@ -14,6 +17,7 @@ public Form1()
1417
{
1518
InitializeComponent();
1619
InitTreeView();
20+
InitTabControl();
1721
}
1822
/// <summary>
1923
/// 初始化TreeNode
@@ -42,18 +46,15 @@ private void InitTreeView()
4246
treeView1.ExpandAll();
4347
treeView1.EndUpdate();
4448
#endregion
49+
}
4550

51+
private void InitTabControl() {
4652
#region 初始化tabControl
4753
ImageList tabImageList = new ImageList();
4854
tabImageList.Images.Add(Properties.Resources.close);
4955
tabControl1.ImageList = tabImageList;
50-
if (tabControl1.TabPages.Count > 0)
51-
{
52-
53-
}
56+
//tabControl1.TabPages.Clear();
5457
#endregion
55-
56-
5758
}
5859

5960
private void fsPictureBox1_FsClick(object sender, EventArgs e)
@@ -177,6 +178,8 @@ private void treeView1_DoubleClick(object sender, EventArgs e)
177178
private void rootTreeNodeReToolStripMenuItem_Click(object sender, EventArgs e)
178179
{
179180
InitTreeView();
181+
//暂时
182+
tabControl1.TabPages.Clear();
180183
}
181184
/// <summary>
182185
/// TreeNode 关闭连接
@@ -195,20 +198,12 @@ private void conctCloseToolStripMenuItem_Click(object sender, EventArgs e)
195198
treeView1.EndUpdate();
196199
FsDatabase fsDatabase = (FsDatabase)node.Tag;
197200
Context.ContextUtils.DelDBConnect(fsDatabase.DBKey);
198-
CloseResourceClear();
199-
}
200-
201-
private void CloseResourceClear()
202-
{
203-
dataGridViewTop1.Rows.Clear();
204-
tabPage1.Text = "";
205-
tabPage1.ToolTipText = "";
206201

207-
genCodeRichTextBox1.Text = "";
208-
selectTableNode = null;
209-
listFileInfo.Clear();
202+
tabControl1.TabPages.Clear();
210203
}
211204

205+
206+
212207
/// <summary>
213208
/// TreeNode 打开节点连接
214209
/// </summary>
@@ -321,15 +316,9 @@ private void dbCloseToolStripMenuItem_Click(object sender, EventArgs e)
321316
treeView1.BeginUpdate();
322317
node.Nodes.Clear();
323318
treeView1.EndUpdate();
324-
CloseResourceClear();
319+
tabControl1.TabPages.Clear();
325320
}
326321

327-
private List<FileInfo> listFileInfo = new List<FileInfo>();
328-
delegate void DelegateMethod(int a);
329-
330-
331-
TreeNode? selectTableNode;
332-
333322
/// <summary>
334323
/// 代码生成
335324
/// </summary>
@@ -343,10 +332,6 @@ private void modelGenToolStripMenuItem_Click(object sender, EventArgs e)
343332
{
344333
return;
345334
}
346-
tabPage1.Select();
347-
tabControl1.SelectedTab = tabPage1;
348-
selectTableNode = null;
349-
listFileInfo.Clear();
350335

351336
FormLoading frmLoading = null;
352337
ThreadPool.QueueUserWorkItem(new WaitCallback(a =>
@@ -358,54 +343,68 @@ private void modelGenToolStripMenuItem_Click(object sender, EventArgs e)
358343
});
359344
}));
360345

346+
FileInfo[] fileInfos = FileUtil.loadTemplates("");
347+
361348
FsDatabase fsDatabase = (FsDatabase)node.Tag;
362349
DBConnect dBConnect = ContextUtils.GetDBConnect(fsDatabase.DBKey);
363350
if (dBConnect.TestConnect())
364351
{
365-
selectTableNode = node;
366-
367352
TreeNode parentNode = node.Parent;
368-
dataGridViewTop1.Rows.Clear();
369353
string selTable = parentNode.Text + "." + node.Text;
370354
List<List<string>> listCols = dBConnect.GetColInfos(selTable);
371-
foreach(List<string> colInfo in listCols)
372-
{
373-
dataGridViewTop1.Rows.Add(colInfo.ToArray());
374-
}
375-
//选项卡
376-
tabPage1.Text = "单表代码生成:"+selTable;
377-
tabPage1.ToolTipText= selTable;
378-
379-
selectTempleteComboBox1.Items.Clear();
380-
381-
382-
Task.Run(() => {
383-
FileInfo[] fileInfos = FileUtil.loadTemplates("");
384-
var deleteMethod1 = new DelegateMethod((a) => {
385-
this.selectTempleteComboBox1.Items.Insert(a, fileInfos[a].Name);
386-
});
387-
for (int i = 0; i < fileInfos.Length; i++)
388-
{
389-
this.selectTempleteComboBox1.Invoke(deleteMethod1,i);
390-
listFileInfo.Add(fileInfos[i]);
391-
}
392-
if (fileInfos.Length > 0 && this.selectTempleteComboBox1.Items.Count>0)
393-
{
394-
this.selectTempleteComboBox1.Invoke(() => {
395-
this.selectTempleteComboBox1.SelectedItem = this.selectTempleteComboBox1.Items[0];
396-
string htmlTemplate = File.ReadAllText(fileInfos[0].FullName);
397-
this.genCodeRichTextBox1.Text = htmlTemplate;
398-
});
399-
}
400-
401-
});
355+
TabPageTag tag = new TabPageTag();
356+
tag.DBKey = fsDatabase.DBKey;
357+
tag.TableName = selTable;
358+
tag.fsDatabase = fsDatabase;
359+
tag.treeNodeTableNode = node;
360+
openSingleTableTabPage(listCols,tag,fileInfos);
402361
}
403362
else
404363
{
405364
MessageBox.Show("数据库连接不可用!"+dBConnect.GetException());
406365
return;
407366
}
408-
this.Invoke((Action)delegate () { frmLoading?.Close(); });
367+
this.Invoke((Action)delegate () {
368+
frmLoading?.Close();
369+
});
370+
treeView1.SelectedNode = node;
371+
}
372+
373+
private void openSingleTableTabPage(List<List<string>> listCols, TabPageTag tag, FileInfo[] fileInfos)
374+
{
375+
int cntPages = tabControl1.TabPages.Count;
376+
TabPage? tabPage = null;
377+
for (int i = 0; i < cntPages; i++)
378+
{
379+
TabPage next = tabControl1.TabPages[i];
380+
TabPageTag nextTag = (TabPageTag)next.Tag;
381+
if(nextTag.DBKey == tag.DBKey && nextTag.TableName == tag.TableName)
382+
{
383+
tabPage = next;
384+
break;
385+
}
386+
}
387+
if(tabPage == null)
388+
{
389+
tabPage = new TabPage();
390+
MySingleControl.listFileInfo = fileInfos.ToList();
391+
MySingleControl mySingleControl = new MySingleControl();
392+
mySingleControl.Dock = System.Windows.Forms.DockStyle.Fill;
393+
mySingleControl.Location = new System.Drawing.Point(0, 0);
394+
mySingleControl.Name = "mySingleControl";
395+
mySingleControl.Padding = new System.Windows.Forms.Padding(3);
396+
mySingleControl.TabIndex = 0;
397+
tabPage.Controls.Add(mySingleControl);
398+
tabPage.Text = "单表 "+tag.TableName;
399+
tabPage.ToolTipText = tabPage.Text;
400+
foreach (List<string> colInfo in listCols)
401+
{
402+
mySingleControl.dataGridViewTop1.Rows.Add(colInfo.ToArray());
403+
}
404+
tabPage.Tag = tag;
405+
tabControl1.TabPages.Add(tabPage);
406+
}
407+
tabControl1.SelectedTab= tabPage;
409408
}
410409

411410

@@ -416,68 +415,21 @@ private void modelGenToolStripMenuItem_Click(object sender, EventArgs e)
416415
/// <param name="e"></param>
417416
private void mulTableGenToolStripMenuItem_Click(object sender, EventArgs e)
418417
{
419-
tabPage2.Select();
420-
tabControl1.SelectedTab = tabPage2;
418+
//tabPage2.Select();
419+
//tabControl1.SelectedTab = tabPage2;
421420
}
422421

423-
/// <summary>
424-
/// 选择模板
425-
/// </summary>
426-
/// <param name="sender"></param>
427-
/// <param name="e"></param>
428-
private void selectTempleteComboBox1_SelectedIndexChanged(object sender, EventArgs e)
429-
{
430-
string fileName = selectTempleteComboBox1.SelectedItem as string;
431-
FileInfo fileInfo = listFileInfo.Where(a => a.Name == fileName).FirstOrDefault();
432-
if (fileInfo != null)
433-
{
434-
string htmlTemplate = File.ReadAllText(fileInfo.FullName);
435-
this.genCodeRichTextBox1.Text = htmlTemplate;
436-
}
437-
}
422+
423+
}
438424

439-
/// <summary>
440-
/// 生成代码
441-
/// </summary>
442-
/// <param name="sender"></param>
443-
/// <param name="e"></param>
444-
private void genCodeButton1_Click(object sender, EventArgs e)
445-
{
446-
if(selectTableNode == null)
447-
{
448-
MessageBox.Show("请选择数据表");
449-
return;
450-
}
451-
if (string.IsNullOrWhiteSpace(namespaceText.Text))
452-
{
453-
MessageBox.Show("请输入命名空间");
454-
return;
455-
}
456-
if(listFileInfo.Count == 0)
457-
{
458-
MessageBox.Show("请选择模板");
459-
return;
460-
}
461-
FsDatabase database = (FsDatabase)selectTableNode.Tag;
462-
TaskBuild task = ContextUtils.CreateTaskBuild(database.DBKey,selectTableNode.Parent.Text);
463-
task.tableName = selectTableNode.Text;
464-
task.FileName = selectTempleteComboBox1.SelectedText;
465-
task.NamespaceName = namespaceText.Text;
466-
task.FilterTableChar = filterTablenameText.Text;
467-
task.FirstUpper = firstCharUpperCheckBox1.Checked;
468-
task.AllLower = allLowerCheckBox1.Checked;
469-
task.UnderLineTranser = underLineToCheckBox2.Checked;
470-
task.Templates = new Template[] { new Template() {
471-
TemplatePath = selectTempleteComboBox1.SelectedItem as string,
472-
TemplateText = genCodeRichTextBox1.Text,
473-
IsChangeText = false,
474-
} };
475-
FormShowGenCode formShowGenCode = new FormShowGenCode(listFileInfo, task);
476-
DialogResult rs = formShowGenCode.ShowDialog();
477-
if(rs == DialogResult.OK)
478-
{
425+
class TabPageTag
426+
{
427+
public string DBKey { get; set; }
479428

480-
}
481-
}
429+
public string TableName { get; set; }
430+
431+
public FsDatabase fsDatabase { get; set; }
432+
433+
public TreeNode treeNodeTableNode { get; set; }
482434
}
483435
}

FreesqlGenCode/Form1.resx

Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -57,66 +57,6 @@
5757
<resheader name="writer">
5858
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
5959
</resheader>
60-
<metadata name="ColName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
61-
<value>True</value>
62-
</metadata>
63-
<metadata name="ColCsType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
64-
<value>True</value>
65-
</metadata>
66-
<metadata name="ColDbType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
67-
<value>True</value>
68-
</metadata>
69-
<metadata name="ColDbTypeText.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
70-
<value>True</value>
71-
</metadata>
72-
<metadata name="ColDbTypeTextFull.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
73-
<value>True</value>
74-
</metadata>
75-
<metadata name="ColMaxLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
76-
<value>True</value>
77-
</metadata>
78-
<metadata name="ColIsPrimary.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
79-
<value>True</value>
80-
</metadata>
81-
<metadata name="ColIsIdentity.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
82-
<value>True</value>
83-
</metadata>
84-
<metadata name="ColIsNullable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
85-
<value>True</value>
86-
</metadata>
87-
<metadata name="ColComent.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
88-
<value>True</value>
89-
</metadata>
90-
<metadata name="ColName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
91-
<value>True</value>
92-
</metadata>
93-
<metadata name="ColCsType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
94-
<value>True</value>
95-
</metadata>
96-
<metadata name="ColDbType.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
97-
<value>True</value>
98-
</metadata>
99-
<metadata name="ColDbTypeText.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
100-
<value>True</value>
101-
</metadata>
102-
<metadata name="ColDbTypeTextFull.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
103-
<value>True</value>
104-
</metadata>
105-
<metadata name="ColMaxLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
106-
<value>True</value>
107-
</metadata>
108-
<metadata name="ColIsPrimary.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
109-
<value>True</value>
110-
</metadata>
111-
<metadata name="ColIsIdentity.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
112-
<value>True</value>
113-
</metadata>
114-
<metadata name="ColIsNullable.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
115-
<value>True</value>
116-
</metadata>
117-
<metadata name="ColComent.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
118-
<value>True</value>
119-
</metadata>
12060
<metadata name="rootTreeNodeContextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
12161
<value>17, 17</value>
12262
</metadata>

FreesqlGenCode/FreesqlGenCode.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
</ItemGroup>
1414

1515
<ItemGroup>
16+
<Compile Update="Form1Copy.cs">
17+
<SubType>Form</SubType>
18+
</Compile>
1619
<Compile Update="Properties\Resources.Designer.cs">
1720
<DesignTime>True</DesignTime>
1821
<AutoGen>True</AutoGen>

FreesqlGenCode/Properties/Resources.Designer.cs

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)