개정판 f4230b40
issue #0000
검증(Validation) - 도프텍 캡쳐, 삼성 캡쳐 삭제 - 진행 중
작업 - 캡쳐 추가
- BriefAndImages 컨트롤 제거
- Main UI 삭제
- AttFile 로직 전체 변경
- Model 수정
- Main > 작업 > 캡쳐 컨트롤 추가
- issue, 이미지, 답변 및 수정사항 로직 수정
Change-Id: Ie6c51ff7d70c70ee31457ea1c36df4295834ea72
ID2.Manager/ID2.Manager.Dapper/Repository/DocumentRepository.cs | ||
---|---|---|
254 | 254 |
case "frreview": |
255 | 255 |
doc.FrCapture++; |
256 | 256 |
break; |
257 |
case "prodvalidation": |
|
258 |
doc.ProdCapture++; |
|
259 |
break; |
|
260 |
case "clientvalidation": |
|
261 |
doc.ClientCapture++; |
|
257 |
//case "prodvalidation": |
|
258 |
// doc.ProdCapture++; |
|
259 |
// break; |
|
260 |
//case "clientvalidation": |
|
261 |
// doc.ClientCapture++; |
|
262 |
// break; |
|
263 |
case "id2work": |
|
264 |
doc.ID2Capture++; |
|
262 | 265 |
break; |
263 | 266 |
} |
264 | 267 |
|
ID2.Manager/ID2.Manager.Data/Models/Documents.cs | ||
---|---|---|
105 | 105 |
public string ID2Status { get; set; } |
106 | 106 |
[DataMember] |
107 | 107 |
public string ID2Issues { get; set; } |
108 |
public int ID2Capture { get; set; } |
|
108 | 109 |
[DataMember] |
109 | 110 |
public string ReplyModifications { get; set; } |
110 | 111 |
[DataMember] |
... | ... | |
131 | 132 |
public string ProdIsResult { get; set; } |
132 | 133 |
[DataMember] |
133 | 134 |
public string ProdRemarks { get; set; } |
134 |
public int ProdCapture { get; set; } |
|
135 |
//public int ProdCapture { get; set; }
|
|
135 | 136 |
[DataMember] |
136 | 137 |
public string ClientReviewer { get; set; } |
137 | 138 |
[DataMember] |
138 | 139 |
public string ClientIsResult { get; set; } |
139 | 140 |
[DataMember] |
140 | 141 |
public string ClientRemarks { get; set; } |
141 |
public int ClientCapture { get; set; } |
|
142 |
//public int ClientCapture { get; set; }
|
|
142 | 143 |
[DataMember] |
143 | 144 |
public string DTIsGateWay { get; set; } |
144 | 145 |
[DataMember] |
ID2.Manager/ID2.Manager/Controls/IssueImagesAndAnswer.Designer.cs | ||
---|---|---|
1 |
|
|
2 |
namespace ID2.Manager.Controls |
|
3 |
{ |
|
4 |
partial class IssueImagesAndAnswer |
|
5 |
{ |
|
6 |
/// <summary> |
|
7 |
/// 필수 디자이너 변수입니다. |
|
8 |
/// </summary> |
|
9 |
private System.ComponentModel.IContainer components = null; |
|
10 |
|
|
11 |
/// <summary> |
|
12 |
/// 사용 중인 모든 리소스를 정리합니다. |
|
13 |
/// </summary> |
|
14 |
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param> |
|
15 |
protected override void Dispose(bool disposing) |
|
16 |
{ |
|
17 |
if (disposing && (components != null)) |
|
18 |
{ |
|
19 |
components.Dispose(); |
|
20 |
} |
|
21 |
base.Dispose(disposing); |
|
22 |
} |
|
23 |
|
|
24 |
#region 구성 요소 디자이너에서 생성한 코드 |
|
25 |
|
|
26 |
/// <summary> |
|
27 |
/// 디자이너 지원에 필요한 메서드입니다. |
|
28 |
/// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. |
|
29 |
/// </summary> |
|
30 |
private void InitializeComponent() |
|
31 |
{ |
|
32 |
this.LayoutRoot = new System.Windows.Forms.TableLayoutPanel(); |
|
33 |
this.LayoutImages = new System.Windows.Forms.TableLayoutPanel(); |
|
34 |
this.label1 = new System.Windows.Forms.Label(); |
|
35 |
this.selectImage = new Telerik.WinControls.UI.RadPictureBox(); |
|
36 |
this.LayoutDoftech = new System.Windows.Forms.TableLayoutPanel(); |
|
37 |
this.lblIssue = new System.Windows.Forms.Label(); |
|
38 |
this.txtIssue = new Telerik.WinControls.UI.RadTextBox(); |
|
39 |
this.lstImages = new Telerik.WinControls.UI.RadListView(); |
|
40 |
this.LayoutSec = new System.Windows.Forms.TableLayoutPanel(); |
|
41 |
this.lblReplyModification = new System.Windows.Forms.Label(); |
|
42 |
this.txtReplyModification = new Telerik.WinControls.UI.RadTextBox(); |
|
43 |
this.LayoutRoot.SuspendLayout(); |
|
44 |
this.LayoutImages.SuspendLayout(); |
|
45 |
((System.ComponentModel.ISupportInitialize)(this.selectImage)).BeginInit(); |
|
46 |
this.LayoutDoftech.SuspendLayout(); |
|
47 |
((System.ComponentModel.ISupportInitialize)(this.txtIssue)).BeginInit(); |
|
48 |
((System.ComponentModel.ISupportInitialize)(this.lstImages)).BeginInit(); |
|
49 |
this.LayoutSec.SuspendLayout(); |
|
50 |
((System.ComponentModel.ISupportInitialize)(this.txtReplyModification)).BeginInit(); |
|
51 |
this.SuspendLayout(); |
|
52 |
// |
|
53 |
// LayoutRoot |
|
54 |
// |
|
55 |
this.LayoutRoot.AutoSize = true; |
|
56 |
this.LayoutRoot.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; |
|
57 |
this.LayoutRoot.ColumnCount = 1; |
|
58 |
this.LayoutRoot.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); |
|
59 |
this.LayoutRoot.Controls.Add(this.LayoutImages, 0, 2); |
|
60 |
this.LayoutRoot.Controls.Add(this.LayoutDoftech, 0, 0); |
|
61 |
this.LayoutRoot.Controls.Add(this.LayoutSec, 0, 1); |
|
62 |
this.LayoutRoot.Dock = System.Windows.Forms.DockStyle.Fill; |
|
63 |
this.LayoutRoot.Location = new System.Drawing.Point(0, 0); |
|
64 |
this.LayoutRoot.Name = "LayoutRoot"; |
|
65 |
this.LayoutRoot.RowCount = 3; |
|
66 |
this.LayoutRoot.RowStyles.Add(new System.Windows.Forms.RowStyle()); |
|
67 |
this.LayoutRoot.RowStyles.Add(new System.Windows.Forms.RowStyle()); |
|
68 |
this.LayoutRoot.RowStyles.Add(new System.Windows.Forms.RowStyle()); |
|
69 |
this.LayoutRoot.Size = new System.Drawing.Size(286, 570); |
|
70 |
this.LayoutRoot.TabIndex = 1; |
|
71 |
// |
|
72 |
// LayoutImages |
|
73 |
// |
|
74 |
this.LayoutImages.AutoSize = true; |
|
75 |
this.LayoutImages.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; |
|
76 |
this.LayoutImages.ColumnCount = 1; |
|
77 |
this.LayoutImages.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); |
|
78 |
this.LayoutImages.Controls.Add(this.label1, 0, 0); |
|
79 |
this.LayoutImages.Controls.Add(this.selectImage, 0, 1); |
|
80 |
this.LayoutImages.Dock = System.Windows.Forms.DockStyle.Fill; |
|
81 |
this.LayoutImages.Location = new System.Drawing.Point(3, 225); |
|
82 |
this.LayoutImages.Name = "LayoutImages"; |
|
83 |
this.LayoutImages.RowCount = 2; |
|
84 |
this.LayoutImages.RowStyles.Add(new System.Windows.Forms.RowStyle()); |
|
85 |
this.LayoutImages.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); |
|
86 |
this.LayoutImages.Size = new System.Drawing.Size(280, 342); |
|
87 |
this.LayoutImages.TabIndex = 1; |
|
88 |
// |
|
89 |
// label1 |
|
90 |
// |
|
91 |
this.label1.AutoSize = true; |
|
92 |
this.label1.BackColor = System.Drawing.Color.Transparent; |
|
93 |
this.label1.Dock = System.Windows.Forms.DockStyle.Left; |
|
94 |
this.label1.Location = new System.Drawing.Point(3, 3); |
|
95 |
this.label1.Margin = new System.Windows.Forms.Padding(3); |
|
96 |
this.label1.Name = "label1"; |
|
97 |
this.label1.Size = new System.Drawing.Size(99, 12); |
|
98 |
this.label1.TabIndex = 1; |
|
99 |
this.label1.Text = "- Select Image -"; |
|
100 |
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; |
|
101 |
// |
|
102 |
// selectImage |
|
103 |
// |
|
104 |
this.selectImage.Dock = System.Windows.Forms.DockStyle.Fill; |
|
105 |
this.selectImage.Location = new System.Drawing.Point(3, 21); |
|
106 |
this.selectImage.Name = "selectImage"; |
|
107 |
this.selectImage.ShowBorder = true; |
|
108 |
this.selectImage.Size = new System.Drawing.Size(274, 318); |
|
109 |
this.selectImage.TabIndex = 3; |
|
110 |
// |
|
111 |
// LayoutDoftech |
|
112 |
// |
|
113 |
this.LayoutDoftech.AutoSize = true; |
|
114 |
this.LayoutDoftech.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; |
|
115 |
this.LayoutDoftech.ColumnCount = 1; |
|
116 |
this.LayoutDoftech.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); |
|
117 |
this.LayoutDoftech.Controls.Add(this.lblIssue, 0, 0); |
|
118 |
this.LayoutDoftech.Controls.Add(this.txtIssue, 0, 1); |
|
119 |
this.LayoutDoftech.Controls.Add(this.lstImages, 0, 2); |
|
120 |
this.LayoutDoftech.Dock = System.Windows.Forms.DockStyle.Fill; |
|
121 |
this.LayoutDoftech.Location = new System.Drawing.Point(3, 3); |
|
122 |
this.LayoutDoftech.MinimumSize = new System.Drawing.Size(0, 105); |
|
123 |
this.LayoutDoftech.Name = "LayoutDoftech"; |
|
124 |
this.LayoutDoftech.RowCount = 3; |
|
125 |
this.LayoutDoftech.RowStyles.Add(new System.Windows.Forms.RowStyle()); |
|
126 |
this.LayoutDoftech.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); |
|
127 |
this.LayoutDoftech.RowStyles.Add(new System.Windows.Forms.RowStyle()); |
|
128 |
this.LayoutDoftech.Size = new System.Drawing.Size(280, 105); |
|
129 |
this.LayoutDoftech.TabIndex = 0; |
|
130 |
// |
|
131 |
// lblIssue |
|
132 |
// |
|
133 |
this.lblIssue.AutoSize = true; |
|
134 |
this.lblIssue.BackColor = System.Drawing.Color.Transparent; |
|
135 |
this.lblIssue.Dock = System.Windows.Forms.DockStyle.Left; |
|
136 |
this.lblIssue.Location = new System.Drawing.Point(3, 3); |
|
137 |
this.lblIssue.Margin = new System.Windows.Forms.Padding(3); |
|
138 |
this.lblIssue.Name = "lblIssue"; |
|
139 |
this.lblIssue.Size = new System.Drawing.Size(56, 12); |
|
140 |
this.lblIssue.TabIndex = 0; |
|
141 |
this.lblIssue.Text = "- Issue -"; |
|
142 |
this.lblIssue.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; |
|
143 |
// |
|
144 |
// txtIssue |
|
145 |
// |
|
146 |
this.txtIssue.AcceptsReturn = true; |
|
147 |
this.txtIssue.Dock = System.Windows.Forms.DockStyle.Fill; |
|
148 |
this.txtIssue.Location = new System.Drawing.Point(3, 21); |
|
149 |
this.txtIssue.MinimumSize = new System.Drawing.Size(30, 0); |
|
150 |
this.txtIssue.Multiline = true; |
|
151 |
this.txtIssue.Name = "txtIssue"; |
|
152 |
// |
|
153 |
// |
|
154 |
// |
|
155 |
this.txtIssue.RootElement.MinSize = new System.Drawing.Size(30, 0); |
|
156 |
this.txtIssue.RootElement.StretchVertically = true; |
|
157 |
this.txtIssue.ShowClearButton = true; |
|
158 |
this.txtIssue.ShowNullText = true; |
|
159 |
this.txtIssue.Size = new System.Drawing.Size(274, 21); |
|
160 |
this.txtIssue.TabIndex = 1; |
|
161 |
// |
|
162 |
// lstImages |
|
163 |
// |
|
164 |
this.lstImages.AllowEdit = false; |
|
165 |
this.lstImages.AutoScroll = true; |
|
166 |
this.lstImages.Dock = System.Windows.Forms.DockStyle.Fill; |
|
167 |
this.lstImages.FullRowSelect = false; |
|
168 |
this.lstImages.ItemSize = new System.Drawing.Size(50, 50); |
|
169 |
this.lstImages.Location = new System.Drawing.Point(3, 48); |
|
170 |
this.lstImages.MaximumSize = new System.Drawing.Size(0, 60); |
|
171 |
this.lstImages.Name = "lstImages"; |
|
172 |
// |
|
173 |
// |
|
174 |
// |
|
175 |
this.lstImages.RootElement.MaxSize = new System.Drawing.Size(0, 60); |
|
176 |
this.lstImages.ShowItemToolTips = false; |
|
177 |
this.lstImages.Size = new System.Drawing.Size(274, 54); |
|
178 |
this.lstImages.TabIndex = 4; |
|
179 |
this.lstImages.ViewType = Telerik.WinControls.UI.ListViewType.IconsView; |
|
180 |
// |
|
181 |
// LayoutSec |
|
182 |
// |
|
183 |
this.LayoutSec.AutoSize = true; |
|
184 |
this.LayoutSec.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; |
|
185 |
this.LayoutSec.ColumnCount = 1; |
|
186 |
this.LayoutSec.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); |
|
187 |
this.LayoutSec.Controls.Add(this.lblReplyModification, 0, 0); |
|
188 |
this.LayoutSec.Controls.Add(this.txtReplyModification, 0, 1); |
|
189 |
this.LayoutSec.Dock = System.Windows.Forms.DockStyle.Fill; |
|
190 |
this.LayoutSec.Location = new System.Drawing.Point(3, 114); |
|
191 |
this.LayoutSec.MinimumSize = new System.Drawing.Size(0, 105); |
|
192 |
this.LayoutSec.Name = "LayoutSec"; |
|
193 |
this.LayoutSec.RowCount = 2; |
|
194 |
this.LayoutSec.RowStyles.Add(new System.Windows.Forms.RowStyle()); |
|
195 |
this.LayoutSec.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); |
|
196 |
this.LayoutSec.Size = new System.Drawing.Size(280, 105); |
|
197 |
this.LayoutSec.TabIndex = 2; |
|
198 |
// |
|
199 |
// lblReplyModification |
|
200 |
// |
|
201 |
this.lblReplyModification.AutoSize = true; |
|
202 |
this.lblReplyModification.BackColor = System.Drawing.Color.Transparent; |
|
203 |
this.lblReplyModification.Dock = System.Windows.Forms.DockStyle.Left; |
|
204 |
this.lblReplyModification.Location = new System.Drawing.Point(3, 3); |
|
205 |
this.lblReplyModification.Margin = new System.Windows.Forms.Padding(3); |
|
206 |
this.lblReplyModification.Name = "lblReplyModification"; |
|
207 |
this.lblReplyModification.Size = new System.Drawing.Size(117, 12); |
|
208 |
this.lblReplyModification.TabIndex = 1; |
|
209 |
this.lblReplyModification.Text = "- 답변 및 수정사항 -"; |
|
210 |
this.lblReplyModification.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; |
|
211 |
// |
|
212 |
// txtReplyModification |
|
213 |
// |
|
214 |
this.txtReplyModification.AcceptsReturn = true; |
|
215 |
this.txtReplyModification.Dock = System.Windows.Forms.DockStyle.Fill; |
|
216 |
this.txtReplyModification.Location = new System.Drawing.Point(3, 21); |
|
217 |
this.txtReplyModification.MinimumSize = new System.Drawing.Size(30, 0); |
|
218 |
this.txtReplyModification.Multiline = true; |
|
219 |
this.txtReplyModification.Name = "txtReplyModification"; |
|
220 |
// |
|
221 |
// |
|
222 |
// |
|
223 |
this.txtReplyModification.RootElement.MinSize = new System.Drawing.Size(30, 0); |
|
224 |
this.txtReplyModification.RootElement.StretchVertically = true; |
|
225 |
this.txtReplyModification.ShowClearButton = true; |
|
226 |
this.txtReplyModification.ShowNullText = true; |
|
227 |
this.txtReplyModification.Size = new System.Drawing.Size(274, 81); |
|
228 |
this.txtReplyModification.TabIndex = 2; |
|
229 |
// |
|
230 |
// IssueImagesAndAnswer |
|
231 |
// |
|
232 |
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); |
|
233 |
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
|
234 |
this.Controls.Add(this.LayoutRoot); |
|
235 |
this.Name = "IssueImagesAndAnswer"; |
|
236 |
this.Size = new System.Drawing.Size(286, 570); |
|
237 |
this.LayoutRoot.ResumeLayout(false); |
|
238 |
this.LayoutRoot.PerformLayout(); |
|
239 |
this.LayoutImages.ResumeLayout(false); |
|
240 |
this.LayoutImages.PerformLayout(); |
|
241 |
((System.ComponentModel.ISupportInitialize)(this.selectImage)).EndInit(); |
|
242 |
this.LayoutDoftech.ResumeLayout(false); |
|
243 |
this.LayoutDoftech.PerformLayout(); |
|
244 |
((System.ComponentModel.ISupportInitialize)(this.txtIssue)).EndInit(); |
|
245 |
((System.ComponentModel.ISupportInitialize)(this.lstImages)).EndInit(); |
|
246 |
this.LayoutSec.ResumeLayout(false); |
|
247 |
this.LayoutSec.PerformLayout(); |
|
248 |
((System.ComponentModel.ISupportInitialize)(this.txtReplyModification)).EndInit(); |
|
249 |
this.ResumeLayout(false); |
|
250 |
this.PerformLayout(); |
|
251 |
|
|
252 |
} |
|
253 |
|
|
254 |
#endregion |
|
255 |
|
|
256 |
private System.Windows.Forms.TableLayoutPanel LayoutRoot; |
|
257 |
private System.Windows.Forms.TableLayoutPanel LayoutImages; |
|
258 |
private System.Windows.Forms.Label label1; |
|
259 |
private Telerik.WinControls.UI.RadPictureBox selectImage; |
|
260 |
private System.Windows.Forms.TableLayoutPanel LayoutDoftech; |
|
261 |
private System.Windows.Forms.Label lblIssue; |
|
262 |
private Telerik.WinControls.UI.RadTextBox txtIssue; |
|
263 |
private Telerik.WinControls.UI.RadListView lstImages; |
|
264 |
private System.Windows.Forms.TableLayoutPanel LayoutSec; |
|
265 |
private System.Windows.Forms.Label lblReplyModification; |
|
266 |
private Telerik.WinControls.UI.RadTextBox txtReplyModification; |
|
267 |
} |
|
268 |
} |
ID2.Manager/ID2.Manager/Controls/IssueImagesAndAnswer.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.ComponentModel; |
|
4 |
using System.Data; |
|
5 |
using System.Drawing; |
|
6 |
using System.Linq; |
|
7 |
using System.Text; |
|
8 |
using System.Threading.Tasks; |
|
9 |
using System.Windows.Forms; |
|
10 |
|
|
11 |
using System.IO; |
|
12 |
|
|
13 |
using ID2.Manager.Common; |
|
14 |
|
|
15 |
using Telerik.WinControls; |
|
16 |
using Telerik.WinControls.UI; |
|
17 |
|
|
18 |
namespace ID2.Manager.Controls |
|
19 |
{ |
|
20 |
public partial class IssueImagesAndAnswer : UserControl |
|
21 |
{ |
|
22 |
readonly Informations informations = Informations.Instance; |
|
23 |
const int TextMinHeight = 30; |
|
24 |
public event EventHandler<AttImageInfo> RemoveImage; |
|
25 |
bool IsClient = false; |
|
26 |
|
|
27 |
public IssueImagesAndAnswer() |
|
28 |
{ |
|
29 |
InitializeComponent(); |
|
30 |
|
|
31 |
txtIssue.DataBindings.Add(new Binding("Text", this, "IssueText", false, DataSourceUpdateMode.OnPropertyChanged)); |
|
32 |
txtReplyModification.DataBindings.Add(new Binding("Text", this, "ReplyModificationText", false, DataSourceUpdateMode.OnPropertyChanged)); |
|
33 |
txtIssue.TextBoxElement.TextBoxItem.MouseDown += TextBoxItemIssue_MouseDown; |
|
34 |
txtReplyModification.TextBoxElement.TextBoxItem.LostFocus += TextBoxItemIssue_LostFocus; |
|
35 |
|
|
36 |
txtReplyModification.TextBoxElement.TextBoxItem.MouseDown += TextBoxItemReplyModification_MouseDown; |
|
37 |
txtReplyModification.TextBoxElement.TextBoxItem.LostFocus += TextBoxItemReplyModification_LostFocus; |
|
38 |
|
|
39 |
lstImages.ListViewElement.ViewElement.Orientation = Orientation.Horizontal; |
|
40 |
|
|
41 |
selectImage.ContextMenuOpened += SelectImage_ContextMenuOpened; |
|
42 |
selectImage.MouseWheel += SelectImage_MouseWheel; |
|
43 |
|
|
44 |
lstImages.SelectedItemChanged += LstImages_SelectedItemChanged; |
|
45 |
lstImages.ItemRemoving += LstToImages_ItemRemoving; |
|
46 |
lstImages.ItemRemoved += LstToImages_ItemRemoved; |
|
47 |
lstImages.VisualItemFormatting += LstImages_VisualItemFormatting; |
|
48 |
lstImages.EditorInitialized += LstToImages_EditorInitialized; |
|
49 |
|
|
50 |
this.IsClient = !string.IsNullOrEmpty(informations.ActiveUser.RefProjectID); |
|
51 |
txtIssue.ReadOnly = this.IsClient; |
|
52 |
txtReplyModification.ReadOnly = this.IsClient; |
|
53 |
} |
|
54 |
|
|
55 |
private void LstToImages_EditorInitialized(object sender, ListViewItemEditorInitializedEventArgs e) |
|
56 |
{ |
|
57 |
} |
|
58 |
|
|
59 |
private void LstToImages_ItemRemoving(object sender, ListViewItemCancelEventArgs e) |
|
60 |
{ |
|
61 |
if (RemoveImage != null) |
|
62 |
{ |
|
63 |
e.Cancel = this.IsClient; |
|
64 |
} |
|
65 |
} |
|
66 |
|
|
67 |
private void LstToImages_ItemRemoved(object sender, ListViewItemEventArgs e) |
|
68 |
{ |
|
69 |
if (RemoveImage != null) |
|
70 |
{ |
|
71 |
RemoveImage(this, e.Item.DataBoundItem as AttImageInfo); |
|
72 |
} |
|
73 |
} |
|
74 |
|
|
75 |
private void TextBoxItemIssue_LostFocus(object sender, EventArgs e) |
|
76 |
{ |
|
77 |
txtIssue.MinimumSize = new Size(0, TextMinHeight); |
|
78 |
|
|
79 |
LayoutDoftech.RowStyles[1].Height = 100; |
|
80 |
LayoutDoftech.RowStyles[1].SizeType = SizeType.Percent; |
|
81 |
} |
|
82 |
|
|
83 |
private void TextBoxItemIssue_MouseDown(object sender, MouseEventArgs e) |
|
84 |
{ |
|
85 |
txtIssue.MinimumSize = new Size(0, 100); |
|
86 |
|
|
87 |
LayoutDoftech.RowStyles[1].Height = 100; |
|
88 |
LayoutDoftech.RowStyles[1].SizeType = SizeType.Absolute; |
|
89 |
} |
|
90 |
|
|
91 |
private void TextBoxItemReplyModification_LostFocus(object sender, EventArgs e) |
|
92 |
{ |
|
93 |
|
|
94 |
txtReplyModification.MinimumSize = new Size(0, TextMinHeight); |
|
95 |
|
|
96 |
LayoutSec.RowStyles[1].Height = 100; |
|
97 |
LayoutSec.RowStyles[1].SizeType = SizeType.Percent; |
|
98 |
} |
|
99 |
|
|
100 |
private void TextBoxItemReplyModification_MouseDown(object sender, MouseEventArgs e) |
|
101 |
{ |
|
102 |
txtReplyModification.MinimumSize = new Size(0, 100); |
|
103 |
|
|
104 |
LayoutSec.RowStyles[1].Height = 100; |
|
105 |
LayoutSec.RowStyles[1].SizeType = SizeType.Absolute; |
|
106 |
} |
|
107 |
|
|
108 |
public event PropertyChangedEventHandler PropertyChanged; |
|
109 |
|
|
110 |
private void LstImages_VisualItemFormatting(object sender, ListViewVisualItemEventArgs e) |
|
111 |
{ |
|
112 |
e.VisualItem.ImageLayout = ImageLayout.Stretch; |
|
113 |
} |
|
114 |
|
|
115 |
private void LstImages_SelectedItemChanged(object sender, EventArgs e) |
|
116 |
{ |
|
117 |
var lstImages = sender as RadListViewElement; |
|
118 |
|
|
119 |
selectImage.Image = lstImages.SelectedItem?.Image; |
|
120 |
} |
|
121 |
|
|
122 |
private void SelectImage_MouseWheel(object sender, MouseEventArgs e) |
|
123 |
{ |
|
124 |
if (e.Delta < 0) |
|
125 |
{ |
|
126 |
selectImage.ZoomProperties.ZoomOut(); |
|
127 |
} |
|
128 |
else |
|
129 |
{ |
|
130 |
selectImage.ZoomProperties.ZoomIn(); |
|
131 |
} |
|
132 |
|
|
133 |
} |
|
134 |
|
|
135 |
private void SelectImage_ContextMenuOpened(object sender, EventArgs e) |
|
136 |
{ |
|
137 |
selectImage.ContextMenuProperties.OpenItem.Visibility = ElementVisibility.Collapsed; |
|
138 |
selectImage.ContextMenuProperties.RemoveItem.Visibility = ElementVisibility.Collapsed; |
|
139 |
selectImage.ContextMenuProperties.CutItem.Visibility = ElementVisibility.Collapsed; |
|
140 |
selectImage.ContextMenuProperties.PasteItem.Visibility = ElementVisibility.Collapsed; |
|
141 |
} |
|
142 |
|
|
143 |
public void SetImages(List<AttImageInfo> images) |
|
144 |
{ |
|
145 |
foreach (var image in images) |
|
146 |
{ |
|
147 |
AddImage(image); |
|
148 |
} |
|
149 |
|
|
150 |
if (images?.Count() > 0) |
|
151 |
{ |
|
152 |
lstImages.SelectedIndex = 0; |
|
153 |
} |
|
154 |
} |
|
155 |
|
|
156 |
public void AddImage(AttImageInfo image, bool SelectItem = false) |
|
157 |
{ |
|
158 |
ListViewDataItem item = new ListViewDataItem(""); |
|
159 |
item.DataBoundItem = image; |
|
160 |
item.ImageAlignment = ContentAlignment.MiddleCenter; |
|
161 |
item.Image = GetImage(image.Data); |
|
162 |
item.TextImageRelation = TextImageRelation.ImageBeforeText; |
|
163 |
lstImages.Items.Add(item); |
|
164 |
|
|
165 |
if (SelectItem) |
|
166 |
{ |
|
167 |
lstImages.SelectedItem = item; |
|
168 |
} |
|
169 |
} |
|
170 |
|
|
171 |
public void Clear() |
|
172 |
{ |
|
173 |
this.DataBindings.Clear(); |
|
174 |
lstImages.Items.Clear(); |
|
175 |
selectImage.Image = null; |
|
176 |
IssueText = "";//대소문자확인필요 |
|
177 |
ReplyModificationText = "";//대소문자확인필요 |
|
178 |
} |
|
179 |
|
|
180 |
private string issueText; |
|
181 |
public string IssueText |
|
182 |
{ |
|
183 |
get { return issueText; } |
|
184 |
set |
|
185 |
{ |
|
186 |
if (issueText != value) |
|
187 |
{ |
|
188 |
issueText = value; |
|
189 |
var propArg = new PropertyChangedEventArgs(nameof(IssueText)); |
|
190 |
PropertyChanged?.Invoke(this, propArg); |
|
191 |
} |
|
192 |
} |
|
193 |
} |
|
194 |
|
|
195 |
private string replyModificationText; |
|
196 |
public string ReplyModificationText |
|
197 |
{ |
|
198 |
get { return replyModificationText; } |
|
199 |
set |
|
200 |
{ |
|
201 |
if (replyModificationText != value) |
|
202 |
{ |
|
203 |
replyModificationText = value; |
|
204 |
var propArg = new PropertyChangedEventArgs(nameof(ReplyModificationText)); |
|
205 |
PropertyChanged?.Invoke(this, propArg); |
|
206 |
} |
|
207 |
} |
|
208 |
} |
|
209 |
|
|
210 |
private Image GetImage(byte[] data) |
|
211 |
{ |
|
212 |
Image result = null; |
|
213 |
|
|
214 |
using (MemoryStream ms = new MemoryStream(data)) |
|
215 |
{ |
|
216 |
result = Image.FromStream(ms); |
|
217 |
} |
|
218 |
|
|
219 |
return result; |
|
220 |
} |
|
221 |
|
|
222 |
//private void txtBrief_TextChanged(object sender, EventArgs e) |
|
223 |
//{ |
|
224 |
// IssueText = txtIssue.Text; |
|
225 |
//} |
|
226 |
|
|
227 |
//private void txtBriefSec_TextChanged(object sender, EventArgs e) |
|
228 |
//{ |
|
229 |
// ReplyModificationText = txtReplyModification.Text; |
|
230 |
//} |
|
231 |
} |
|
232 |
} |
ID2.Manager/ID2.Manager/Controls/IssueImagesAndAnswer.resx | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<root> |
|
3 |
<!-- |
|
4 |
Microsoft ResX Schema |
|
5 |
|
|
6 |
Version 2.0 |
|
7 |
|
|
8 |
The primary goals of this format is to allow a simple XML format |
|
9 |
that is mostly human readable. The generation and parsing of the |
|
10 |
various data types are done through the TypeConverter classes |
|
11 |
associated with the data types. |
|
12 |
|
|
13 |
Example: |
|
14 |
|
|
15 |
... ado.net/XML headers & schema ... |
|
16 |
<resheader name="resmimetype">text/microsoft-resx</resheader> |
|
17 |
<resheader name="version">2.0</resheader> |
|
18 |
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
|
19 |
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
|
20 |
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
|
21 |
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
|
22 |
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
|
23 |
<value>[base64 mime encoded serialized .NET Framework object]</value> |
|
24 |
</data> |
|
25 |
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
|
26 |
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
|
27 |
<comment>This is a comment</comment> |
|
28 |
</data> |
|
29 |
|
|
30 |
There are any number of "resheader" rows that contain simple |
|
31 |
name/value pairs. |
|
32 |
|
|
33 |
Each data row contains a name, and value. The row also contains a |
|
34 |
type or mimetype. Type corresponds to a .NET class that support |
|
35 |
text/value conversion through the TypeConverter architecture. |
|
36 |
Classes that don't support this are serialized and stored with the |
|
37 |
mimetype set. |
|
38 |
|
|
39 |
The mimetype is used for serialized objects, and tells the |
|
40 |
ResXResourceReader how to depersist the object. This is currently not |
|
41 |
extensible. For a given mimetype the value must be set accordingly: |
|
42 |
|
|
43 |
Note - application/x-microsoft.net.object.binary.base64 is the format |
|
44 |
that the ResXResourceWriter will generate, however the reader can |
|
45 |
read any of the formats listed below. |
|
46 |
|
|
47 |
mimetype: application/x-microsoft.net.object.binary.base64 |
|
48 |
value : The object must be serialized with |
|
49 |
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
|
50 |
: and then encoded with base64 encoding. |
|
51 |
|
|
52 |
mimetype: application/x-microsoft.net.object.soap.base64 |
|
53 |
value : The object must be serialized with |
|
54 |
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
|
55 |
: and then encoded with base64 encoding. |
|
56 |
|
|
57 |
mimetype: application/x-microsoft.net.object.bytearray.base64 |
|
58 |
value : The object must be serialized into a byte array |
|
59 |
: using a System.ComponentModel.TypeConverter |
|
60 |
: and then encoded with base64 encoding. |
|
61 |
--> |
|
62 |
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
|
63 |
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
|
64 |
<xsd:element name="root" msdata:IsDataSet="true"> |
|
65 |
<xsd:complexType> |
|
66 |
<xsd:choice maxOccurs="unbounded"> |
|
67 |
<xsd:element name="metadata"> |
|
68 |
<xsd:complexType> |
|
69 |
<xsd:sequence> |
|
70 |
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
|
71 |
</xsd:sequence> |
|
72 |
<xsd:attribute name="name" use="required" type="xsd:string" /> |
|
73 |
<xsd:attribute name="type" type="xsd:string" /> |
|
74 |
<xsd:attribute name="mimetype" type="xsd:string" /> |
|
75 |
<xsd:attribute ref="xml:space" /> |
|
76 |
</xsd:complexType> |
|
77 |
</xsd:element> |
|
78 |
<xsd:element name="assembly"> |
|
79 |
<xsd:complexType> |
|
80 |
<xsd:attribute name="alias" type="xsd:string" /> |
|
81 |
<xsd:attribute name="name" type="xsd:string" /> |
|
82 |
</xsd:complexType> |
|
83 |
</xsd:element> |
|
84 |
<xsd:element name="data"> |
|
85 |
<xsd:complexType> |
|
86 |
<xsd:sequence> |
|
87 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
88 |
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
|
89 |
</xsd:sequence> |
|
90 |
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
|
91 |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
|
92 |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
|
93 |
<xsd:attribute ref="xml:space" /> |
|
94 |
</xsd:complexType> |
|
95 |
</xsd:element> |
|
96 |
<xsd:element name="resheader"> |
|
97 |
<xsd:complexType> |
|
98 |
<xsd:sequence> |
|
99 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
100 |
</xsd:sequence> |
|
101 |
<xsd:attribute name="name" type="xsd:string" use="required" /> |
|
102 |
</xsd:complexType> |
|
103 |
</xsd:element> |
|
104 |
</xsd:choice> |
|
105 |
</xsd:complexType> |
|
106 |
</xsd:element> |
|
107 |
</xsd:schema> |
|
108 |
<resheader name="resmimetype"> |
|
109 |
<value>text/microsoft-resx</value> |
|
110 |
</resheader> |
|
111 |
<resheader name="version"> |
|
112 |
<value>2.0</value> |
|
113 |
</resheader> |
|
114 |
<resheader name="reader"> |
|
115 |
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
116 |
</resheader> |
|
117 |
<resheader name="writer"> |
|
118 |
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
119 |
</resheader> |
|
120 |
</root> |
ID2.Manager/ID2.Manager/ID2.Manager.csproj | ||
---|---|---|
122 | 122 |
<Compile Include="Controls\DetailGridViewTemplate.cs"> |
123 | 123 |
<SubType>Component</SubType> |
124 | 124 |
</Compile> |
125 |
<Compile Include="Controls\IssueImagesAndAnswer.cs"> |
|
126 |
<SubType>UserControl</SubType> |
|
127 |
</Compile> |
|
128 |
<Compile Include="Controls\IssueImagesAndAnswer.Designer.cs"> |
|
129 |
<DependentUpon>IssueImagesAndAnswer.cs</DependentUpon> |
|
130 |
</Compile> |
|
125 | 131 |
<Compile Include="Controls\OpenProjectView.cs"> |
126 | 132 |
<SubType>UserControl</SubType> |
127 | 133 |
</Compile> |
... | ... | |
201 | 207 |
<EmbeddedResource Include="Controls\BriefAndImages.resx"> |
202 | 208 |
<DependentUpon>BriefAndImages.cs</DependentUpon> |
203 | 209 |
</EmbeddedResource> |
210 |
<EmbeddedResource Include="Controls\IssueImagesAndAnswer.resx"> |
|
211 |
<DependentUpon>IssueImagesAndAnswer.cs</DependentUpon> |
|
212 |
</EmbeddedResource> |
|
204 | 213 |
<EmbeddedResource Include="Controls\OpenProjectView.resx"> |
205 | 214 |
<DependentUpon>OpenProjectView.cs</DependentUpon> |
206 | 215 |
</EmbeddedResource> |
ID2.Manager/ID2.Manager/Main.Designer.cs | ||
---|---|---|
54 | 54 |
Telerik.WinControls.UI.GridViewDateTimeColumn gridViewDateTimeColumn2 = new Telerik.WinControls.UI.GridViewDateTimeColumn(); |
55 | 55 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn9 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
56 | 56 |
Telerik.WinControls.UI.GridViewTextBoxColumn gridViewTextBoxColumn7 = new Telerik.WinControls.UI.GridViewTextBoxColumn(); |
57 |
Telerik.WinControls.UI.GridViewImageColumn gridViewImageColumn3 = new Telerik.WinControls.UI.GridViewImageColumn(); |
|
57 | 58 |
Telerik.WinControls.UI.GridViewTextBoxColumn gridViewTextBoxColumn8 = new Telerik.WinControls.UI.GridViewTextBoxColumn(); |
58 | 59 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn10 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
59 | 60 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn11 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
... | ... | |
67 | 68 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn15 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
68 | 69 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn16 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
69 | 70 |
Telerik.WinControls.UI.GridViewTextBoxColumn gridViewTextBoxColumn10 = new Telerik.WinControls.UI.GridViewTextBoxColumn(); |
70 |
Telerik.WinControls.UI.GridViewImageColumn gridViewImageColumn3 = new Telerik.WinControls.UI.GridViewImageColumn(); |
|
71 | 71 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn17 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
72 | 72 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn18 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
73 | 73 |
Telerik.WinControls.UI.GridViewTextBoxColumn gridViewTextBoxColumn11 = new Telerik.WinControls.UI.GridViewTextBoxColumn(); |
74 |
Telerik.WinControls.UI.GridViewImageColumn gridViewImageColumn4 = new Telerik.WinControls.UI.GridViewImageColumn(); |
|
75 | 74 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn19 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
76 | 75 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn20 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
77 | 76 |
Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn21 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); |
... | ... | |
176 | 175 |
this.DockWindowComment = new Telerik.WinControls.UI.Docking.ToolWindow(); |
177 | 176 |
this.radPageViewComment = new Telerik.WinControls.UI.RadPageView(); |
178 | 177 |
this.radPageViewPageReview = new Telerik.WinControls.UI.RadPageViewPage(); |
179 |
this.radPageViewPageValidation = new Telerik.WinControls.UI.RadPageViewPage();
|
|
178 |
this.radPageViewPageWork = new Telerik.WinControls.UI.RadPageViewPage();
|
|
180 | 179 |
this.DockContainerMain = new Telerik.WinControls.UI.Docking.DocumentContainer(); |
181 | 180 |
this.DockMainTabStrip = new Telerik.WinControls.UI.Docking.DocumentTabStrip(); |
182 | 181 |
this.DockWindowMain = new Telerik.WinControls.UI.Docking.ToolWindow(); |
... | ... | |
479 | 478 |
this.tableLayoutPanelCondition.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); |
480 | 479 |
this.tableLayoutPanelCondition.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 85F)); |
481 | 480 |
this.tableLayoutPanelCondition.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); |
482 |
this.tableLayoutPanelCondition.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 91F));
|
|
481 |
this.tableLayoutPanelCondition.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 93F));
|
|
483 | 482 |
this.tableLayoutPanelCondition.Controls.Add(this.radDropDownListFrReviewStatus, 4, 2); |
484 | 483 |
this.tableLayoutPanelCondition.Controls.Add(this.radDropDownListToIsDiscussion, 2, 2); |
485 | 484 |
this.tableLayoutPanelCondition.Controls.Add(this.radLabelFrReviewStatus, 3, 2); |
... | ... | |
1216 | 1215 |
gridViewTextBoxColumn7.HeaderText = "이슈사항"; |
1217 | 1216 |
gridViewTextBoxColumn7.Name = "ID2Issues"; |
1218 | 1217 |
gridViewTextBoxColumn7.Width = 150; |
1218 |
gridViewImageColumn3.HeaderText = "Detail(캡쳐)"; |
|
1219 |
gridViewImageColumn3.Name = "ID2Capture"; |
|
1220 |
gridViewImageColumn3.Width = 80; |
|
1219 | 1221 |
gridViewTextBoxColumn8.FieldName = "ReplyModifications"; |
1220 | 1222 |
gridViewTextBoxColumn8.HeaderText = "답변 및 수정사항"; |
1221 | 1223 |
gridViewTextBoxColumn8.Name = "ReplyModifications"; |
... | ... | |
1291 | 1293 |
gridViewTextBoxColumn10.HeaderText = "비고"; |
1292 | 1294 |
gridViewTextBoxColumn10.Name = "ProdRemarks"; |
1293 | 1295 |
gridViewTextBoxColumn10.Width = 150; |
1294 |
gridViewImageColumn3.HeaderText = "캡쳐"; |
|
1295 |
gridViewImageColumn3.Name = "ProdCapture"; |
|
1296 | 1296 |
gridViewComboBoxColumn17.EnableExpressionEditor = false; |
1297 | 1297 |
gridViewComboBoxColumn17.FieldName = "ClientReviewer"; |
1298 | 1298 |
gridViewComboBoxColumn17.HeaderText = "검토자"; |
... | ... | |
1310 | 1310 |
gridViewTextBoxColumn11.HeaderText = "비고"; |
1311 | 1311 |
gridViewTextBoxColumn11.Name = "ClientRemarks"; |
1312 | 1312 |
gridViewTextBoxColumn11.Width = 150; |
1313 |
gridViewImageColumn4.HeaderText = "캡쳐"; |
|
1314 |
gridViewImageColumn4.Name = "ClientCapture"; |
|
1315 | 1313 |
gridViewComboBoxColumn19.EnableExpressionEditor = false; |
1316 | 1314 |
gridViewComboBoxColumn19.FieldName = "DTIsGateWay"; |
1317 | 1315 |
gridViewComboBoxColumn19.HeaderText = "GateWay"; |
... | ... | |
1361 | 1359 |
gridViewDateTimeColumn2, |
1362 | 1360 |
gridViewComboBoxColumn9, |
1363 | 1361 |
gridViewTextBoxColumn7, |
1362 |
gridViewImageColumn3, |
|
1364 | 1363 |
gridViewTextBoxColumn8, |
1365 | 1364 |
gridViewComboBoxColumn10, |
1366 | 1365 |
gridViewComboBoxColumn11, |
... | ... | |
1374 | 1373 |
gridViewComboBoxColumn15, |
1375 | 1374 |
gridViewComboBoxColumn16, |
1376 | 1375 |
gridViewTextBoxColumn10, |
1377 |
gridViewImageColumn3, |
|
1378 | 1376 |
gridViewComboBoxColumn17, |
1379 | 1377 |
gridViewComboBoxColumn18, |
1380 | 1378 |
gridViewTextBoxColumn11, |
1381 |
gridViewImageColumn4, |
|
1382 | 1379 |
gridViewComboBoxColumn19, |
1383 | 1380 |
gridViewComboBoxColumn20, |
1384 | 1381 |
gridViewComboBoxColumn21, |
... | ... | |
1659 | 1656 |
// radPageViewComment |
1660 | 1657 |
// |
1661 | 1658 |
this.radPageViewComment.Controls.Add(this.radPageViewPageReview); |
1662 |
this.radPageViewComment.Controls.Add(this.radPageViewPageValidation);
|
|
1659 |
this.radPageViewComment.Controls.Add(this.radPageViewPageWork);
|
|
1663 | 1660 |
this.radPageViewComment.Dock = System.Windows.Forms.DockStyle.Fill; |
1664 | 1661 |
this.radPageViewComment.Location = new System.Drawing.Point(0, 0); |
1665 | 1662 |
this.radPageViewComment.Name = "radPageViewComment"; |
... | ... | |
1676 | 1673 |
this.radPageViewPageReview.Size = new System.Drawing.Size(276, 559); |
1677 | 1674 |
this.radPageViewPageReview.Text = "검토"; |
1678 | 1675 |
// |
1679 |
// radPageViewPageValidation
|
|
1676 |
// radPageViewPageWork
|
|
1680 | 1677 |
// |
1681 |
this.radPageViewPageValidation.ItemSize = new System.Drawing.SizeF(39F, 28F);
|
|
1682 |
this.radPageViewPageValidation.Location = new System.Drawing.Point(10, 37);
|
|
1683 |
this.radPageViewPageValidation.Name = "radPageViewPageValidation";
|
|
1684 |
this.radPageViewPageValidation.Size = new System.Drawing.Size(258, 240);
|
|
1685 |
this.radPageViewPageValidation.Text = "검증";
|
|
1678 |
this.radPageViewPageWork.ItemSize = new System.Drawing.SizeF(39F, 28F);
|
|
1679 |
this.radPageViewPageWork.Location = new System.Drawing.Point(10, 37);
|
|
1680 |
this.radPageViewPageWork.Name = "radPageViewPageWork";
|
|
1681 |
this.radPageViewPageWork.Size = new System.Drawing.Size(258, 240);
|
|
1682 |
this.radPageViewPageWork.Text = "작업";
|
|
1686 | 1683 |
// |
1687 | 1684 |
// DockContainerMain |
1688 | 1685 |
// |
... | ... | |
1958 | 1955 |
private Telerik.WinControls.UI.Docking.ToolTabStrip DockTabStripComment; |
1959 | 1956 |
private Telerik.WinControls.UI.RadPageView radPageViewComment; |
1960 | 1957 |
private Telerik.WinControls.UI.RadPageViewPage radPageViewPageReview; |
1961 |
private Telerik.WinControls.UI.RadPageViewPage radPageViewPageValidation;
|
|
1958 |
private Telerik.WinControls.UI.RadPageViewPage radPageViewPageWork;
|
|
1962 | 1959 |
private Telerik.WinControls.UI.CommandBarSeparator commandBarSeparator3; |
1963 | 1960 |
private Telerik.WinControls.UI.BackstageButtonItem backstageButtonItemSelectDB; |
1964 | 1961 |
private Telerik.WinControls.UI.Docking.DocumentWindow DockValidation; |
ID2.Manager/ID2.Manager/Main.cs | ||
---|---|---|
55 | 55 |
int TotalCount = 0; |
56 | 56 |
|
57 | 57 |
BriefAndImages briefAndImagesReview = new BriefAndImages { Dock = DockStyle.Fill }; |
58 |
BriefAndImages briefAndImagesValidation = new BriefAndImages { Dock = DockStyle.Fill };
|
|
58 |
IssueImagesAndAnswer issueImagesAndAnswerWork = new IssueImagesAndAnswer { Dock = DockStyle.Fill };
|
|
59 | 59 |
|
60 | 60 |
#if DEBUG |
61 | 61 |
Telerik.WinControls.RadControlSpy.RadControlSpyForm radControlSpyForm = new Telerik.WinControls.RadControlSpy.RadControlSpyForm(); |
... | ... | |
128 | 128 |
this.InitColumnGroupsViewDefinition(this.radGridViewDocuments); |
129 | 129 |
|
130 | 130 |
this.radPageViewPageReview.Controls.Add(briefAndImagesReview); |
131 |
this.radPageViewPageValidation.Controls.Add(briefAndImagesValidation);
|
|
131 |
this.radPageViewPageWork.Controls.Add(issueImagesAndAnswerWork);
|
|
132 | 132 |
|
133 | 133 |
briefAndImagesReview.RemoveImage += BriefAndImages_RemoveImage; |
134 |
briefAndImagesValidation.RemoveImage += BriefAndImages_RemoveImage;
|
|
134 |
issueImagesAndAnswerWork.RemoveImage += IssueImagesAndAnswer_RemoveImage;
|
|
135 | 135 |
this.Initialize(); |
136 | 136 |
} |
137 | 137 |
|
... | ... | |
167 | 167 |
} |
168 | 168 |
} |
169 | 169 |
|
170 |
private void IssueImagesAndAnswer_RemoveImage(object sender, AttImageInfo e) |
|
171 |
{ |
|
172 |
try |
|
173 |
{ |
|
174 |
if (e is AttImageInfo) |
|
175 |
{ |
|
176 |
if (this.radGridViewDocuments.SelectedRows.Count() > 0 && this.radGridViewDocuments.SelectedRows.First().DataBoundItem is Documents doc) |
|
177 |
{ |
|
178 |
var reslut = doc.AttFiles.RemoveAll(x => x.FileID == e.ID); |
|
179 |
|
|
180 |
if (reslut > 0) |
|
181 |
{ |
|
182 |
|
|
183 |
} |
|
184 |
else |
|
185 |
{ |
|
186 |
MessageBox.Show("삭제오류"); |
|
187 |
} |
|
188 |
} |
|
189 |
} |
|
190 |
} |
|
191 |
catch (Exception ex) |
|
192 |
{ |
|
193 |
Program.logger.Error("IssueImagesAndAnswer_RemoveImage", ex); |
|
194 |
} |
|
195 |
} |
|
196 |
|
|
170 | 197 |
private void SaveDockingLayout() |
171 | 198 |
{ |
172 | 199 |
try |
... | ... | |
329 | 356 |
{ |
330 | 357 |
category = "frreview"; |
331 | 358 |
} |
332 |
else if (IsDoftech && !selectReview) |
|
333 |
{ |
|
334 |
category = "prodvalidation"; |
|
335 |
} |
|
336 |
else |
|
359 |
//else if (IsDoftech && !selectReview) |
|
360 |
//{ |
|
361 |
// category = "prodvalidation"; |
|
362 |
//} |
|
363 |
//else |
|
364 |
//{ |
|
365 |
// category = "clientvalidation"; |
|
366 |
//} |
|
367 |
else |
|
337 | 368 |
{ |
338 |
category = "clientvalidation";
|
|
369 |
category = "id2work";
|
|
339 | 370 |
} |
340 | 371 |
|
341 | 372 |
|
... | ... | |
370 | 401 |
case "frreview": |
371 | 402 |
briefAndImagesReview.AddFrImage(imageInfo, true); |
372 | 403 |
break; |
373 |
case "prodvalidation": |
|
374 |
briefAndImagesValidation.AddToImage(imageInfo, true); |
|
375 |
break; |
|
376 |
case "clientvalidation": |
|
377 |
briefAndImagesValidation.AddFrImage(imageInfo, true); |
|
404 |
//case "prodvalidation": |
|
405 |
// briefAndImagesValidation.AddToImage(imageInfo, true); |
|
406 |
// break; |
|
407 |
//case "clientvalidation": |
|
408 |
// briefAndImagesValidation.AddFrImage(imageInfo, true); |
|
409 |
// break; |
|
410 |
case "id2work": |
|
411 |
issueImagesAndAnswerWork.AddImage(imageInfo, true); |
|
378 | 412 |
break; |
379 | 413 |
} |
380 | 414 |
} |
... | ... | |
410 | 444 |
public void BindingDocumentToDetailEditor(Documents doc) |
411 | 445 |
{ |
412 | 446 |
briefAndImagesReview.Clear(); |
413 |
briefAndImagesValidation.Clear();
|
|
447 |
issueImagesAndAnswerWork.Clear();
|
|
414 | 448 |
|
415 | 449 |
//FrRemarks 추가 |
416 | 450 |
|
417 | 451 |
briefAndImagesReview.DataBindings.Add(new Binding("BriefDoftech", doc, "ToRemarks", false, DataSourceUpdateMode.OnPropertyChanged, null)); |
418 | 452 |
briefAndImagesReview.DataBindings.Add(new Binding("BriefSec", doc, "FrRemarks", false, DataSourceUpdateMode.OnPropertyChanged, null)); |
419 | 453 |
|
420 |
briefAndImagesValidation.DataBindings.Add(new Binding("BriefDoftech", doc, "ProdRemarks", false, DataSourceUpdateMode.OnPropertyChanged, null));
|
|
421 |
briefAndImagesValidation.DataBindings.Add(new Binding("BriefSec", doc, "ClientRemarks", false, DataSourceUpdateMode.OnPropertyChanged, null));
|
|
454 |
issueImagesAndAnswerWork.DataBindings.Add(new Binding("IssueText", doc, "ID2Issues", false, DataSourceUpdateMode.OnPropertyChanged, null));
|
|
455 |
issueImagesAndAnswerWork.DataBindings.Add(new Binding("ReplyModificationText", doc, "ReplyModifications", false, DataSourceUpdateMode.OnPropertyChanged, null));
|
|
422 | 456 |
|
423 | 457 |
if (doc.AttFiles != null) |
424 | 458 |
{ |
... | ... | |
434 | 468 |
briefAndImagesReview.SetFrImages(images.ToList()); |
435 | 469 |
} |
436 | 470 |
|
437 |
if (doc.AttFiles.Any(x => x.Category == "prodvalidation")) |
|
438 |
{ |
|
439 |
var images = doc.AttFiles.Where(x => x.Category == "prodvalidation").Select(x => new AttImageInfo { ID = x.FileID, Category = x.Category, Data = x.FileData }); |
|
440 |
briefAndImagesValidation.SetToImages(images.ToList()); |
|
441 |
} |
|
471 |
//if (doc.AttFiles.Any(x => x.Category == "prodvalidation")) |
|
472 |
//{ |
|
473 |
// var images = doc.AttFiles.Where(x => x.Category == "prodvalidation").Select(x => new AttImageInfo { ID = x.FileID, Category = x.Category, Data = x.FileData }); |
|
474 |
// briefAndImagesValidation.SetToImages(images.ToList()); |
|
475 |
//} |
|
476 |
|
|
477 |
//if (doc.AttFiles.Any(x => x.Category == "clientvalidation")) |
|
478 |
//{ |
|
479 |
// var images = doc.AttFiles.Where(x => x.Category == "clientvalidation").Select(x => new AttImageInfo { ID = x.FileID, Category = x.Category, Data = x.FileData }); |
|
480 |
// briefAndImagesValidation.SetFrImages(images.ToList()); |
|
481 |
//} |
|
442 | 482 |
|
443 |
if (doc.AttFiles.Any(x => x.Category == "clientvalidation")) |
|
483 |
//수정필요 |
|
484 |
if (doc.AttFiles.Any(x => x.Category == "id2work")) |
|
444 | 485 |
{ |
445 |
var images = doc.AttFiles.Where(x => x.Category == "clientvalidation").Select(x => new AttImageInfo { ID = x.FileID, Category = x.Category, Data = x.FileData });
|
|
446 |
briefAndImagesValidation.SetFrImages(images.ToList());
|
|
486 |
var images = doc.AttFiles.Where(x => x.Category == "id2work").Select(x => new AttImageInfo { ID = x.FileID, Category = x.Category, Data = x.FileData });
|
|
487 |
issueImagesAndAnswerWork.SetImages(images.ToList());
|
|
447 | 488 |
} |
448 | 489 |
} |
449 | 490 |
} |
... | ... | |
1458 | 1499 |
e.CellElement.Image = Properties.Resources.files18; |
1459 | 1500 |
} |
1460 | 1501 |
break; |
1461 |
case "ProdCapture": |
|
1462 |
if (result.ProdCapture > 0) |
|
1463 |
{ |
|
1464 |
e.CellElement.Image = Properties.Resources.files18; |
|
1465 |
} |
|
1466 |
break; |
|
1467 |
case "ClientCapture": |
|
1468 |
if (result.ClientCapture > 0) |
|
1502 |
//case "ProdCapture": |
|
1503 |
// if (result.ProdCapture > 0) |
|
1504 |
// { |
|
1505 |
// e.CellElement.Image = Properties.Resources.files18; |
|
1506 |
// } |
|
1507 |
// break; |
|
1508 |
//case "ClientCapture": |
|
1509 |
// if (result.ClientCapture > 0) |
|
1510 |
// { |
|
1511 |
// e.CellElement.Image = Properties.Resources.files18; |
|
1512 |
// } |
|
1513 |
// break; |
|
1514 |
case "ID2Capture": |
|
1515 |
if (result.ID2Capture > 0) |
|
1469 | 1516 |
{ |
1470 | 1517 |
e.CellElement.Image = Properties.Resources.files18; |
1471 | 1518 |
} |
... | ... | |
2262 | 2309 |
List<string> docInfoColNames = new List<string>() { "RefProjectCode", "System", "SubSystemCode", "DocumentNo", "PersonInCharge", "Worker", "AVEVAPersonInCharge", "AVEVAWorker", "JobLevel", "RevisonNo" }; |
2263 | 2310 |
List<string> rvToColNames = new List<string>() { "ToIsDiscussion", "ToRemarks", "ToCreator", "ToCapture" }; |
2264 | 2311 |
List<string> rvFrColNames = new List<string>() { "FrReviewStatus", "FrRemarks", "FrCreator", "FrCapture" }; |
2265 |
List<string> wkID2ColNames = new List<string>() { "ID2StartDate", "ID2EndDate", "ID2Status", "ID2Issues", "ReplyModifications", "ReplyRequester", "IsConvert" }; |
|
2312 |
List<string> wkID2ColNames = new List<string>() { "ID2StartDate", "ID2EndDate", "ID2Status", "ID2Issues", "ID2Capture", "ReplyModifications", "ReplyRequester", "IsConvert" };
|
|
2266 | 2313 |
List<string> wkAVEVAColNames = new List<string>() { "AVEVAConvertDate", "AVEVAWorkDate", "AVEVAStatus", "AVEVAIssues" }; |
2267 |
List<string> valProdColNames = new List<string>() { "AVEVAReviewDate", "ProdReviewer", "ProdIsResult", "ProdRemarks", "ProdCapture" };
|
|
2268 |
List<string> valCntColNames = new List<string>() { "ClientReviewer", "ClientIsResult", "ClientRemarks", "ClientCapture" };
|
|
2314 |
List<string> valProdColNames = new List<string>() { "AVEVAReviewDate", "ProdReviewer", "ProdIsResult", "ProdRemarks" }; |
|
2315 |
List<string> valCntColNames = new List<string>() { "ClientReviewer", "ClientIsResult", "ClientRemarks" }; |
|
2269 | 2316 |
List<string> dtColNames = new List<string>() { "DTIsGateWay", "DTIsImport", "DTIsRegSystem", "DTRemarks" }; |
2270 | 2317 |
|
2271 | 2318 |
//도면 |
내보내기 Unified diff