개정판 ef7ba61f
Fix: 선택한 객체가 화면 최상단에 올라오는 오류 수정
Change-Id: I3eb1adeb497bf6d2e7a09dbed185e57478bda0a2
KCOM/Common/SelectionSet.cs | ||
---|---|---|
125 | 125 |
{ |
126 | 126 |
try |
127 | 127 |
{ |
128 |
if (mainMenu.SelectLayer.Children.Count > 0) |
|
128 |
if (mainMenu.SelectLayer.Children.Count <= 0) return; |
|
129 |
|
|
130 |
foreach (var item in mainMenu.SelectLayer.Children) |
|
129 | 131 |
{ |
130 |
foreach (var item in mainMenu.SelectLayer.Children)
|
|
132 |
if (item.GetType().Name == "AdornerFinal")
|
|
131 | 133 |
{ |
132 |
if (item.GetType().Name == "AdornerFinal") |
|
133 |
{ |
|
134 |
(item as AdornerFinal).UnRegister(); |
|
134 |
(item as AdornerFinal).UnRegister(); |
|
135 | 135 |
|
136 |
foreach (var InnerItem in (item as AdornerFinal).Members) |
|
136 |
foreach (var InnerItem in (item as AdornerFinal).Members) |
|
137 |
{ |
|
138 |
if (!ViewerDataModel.Instance.MarkupControls_USER.Contains(InnerItem.DrawingData)) |
|
137 | 139 |
{ |
138 |
if (!ViewerDataModel.Instance.MarkupControls_USER.Contains(InnerItem.DrawingData))
|
|
140 |
if (InnerItem.DrawingData.GetType().Name == "PolygonControl")
|
|
139 | 141 |
{ |
140 |
if (InnerItem.DrawingData.GetType().Name == "PolygonControl")
|
|
142 |
if ((InnerItem.DrawingData as PolygonControl).CommentID == null)
|
|
141 | 143 |
{ |
142 |
if ((InnerItem.DrawingData as PolygonControl).CommentID == null) |
|
143 |
{ |
|
144 |
(InnerItem.DrawingData as PolygonControl).CommentID = Commons.shortGuid(); |
|
145 |
} |
|
144 |
(InnerItem.DrawingData as PolygonControl).CommentID = Commons.shortGuid(); |
|
146 | 145 |
} |
147 |
|
|
148 |
var control = InnerItem.DrawingData as CommentUserInfo; |
|
149 |
#region ZIndex 설정 |
|
150 |
System.Windows.Controls.Canvas.SetZIndex(control, control.ZIndex); |
|
151 |
#endregion |
|
152 |
ViewerDataModel.Instance.MarkupControls_USER.Add(control); |
|
153 | 146 |
} |
147 |
|
|
148 |
var control = InnerItem.DrawingData as CommentUserInfo; |
|
149 |
#region ZIndex 설정 |
|
150 |
System.Windows.Controls.Canvas.SetZIndex(control, control.ZIndex); |
|
151 |
#endregion |
|
152 |
ViewerDataModel.Instance.MarkupControls_USER.Insert(control.Index, control); |
|
154 | 153 |
} |
155 | 154 |
} |
156 | 155 |
} |
157 |
mainMenu.SelectLayer.Children.Clear(); |
|
158 | 156 |
} |
157 |
mainMenu.SelectLayer.Children.Clear(); |
|
159 | 158 |
} |
160 | 159 |
catch (Exception ex) |
161 | 160 |
{ |
KCOM/Controls/AdornerFinal.xaml.cs | ||
---|---|---|
151 | 151 |
|
152 | 152 |
public partial class AdornerFinal : UserControl |
153 | 153 |
{ |
154 |
public TextBox editTextBox { get; set; } |
|
155 | 154 |
#region 공용 인스턴스 |
156 | 155 |
public List<AdornerMember> Members { get; } = new List<AdornerMember>(); |
157 | 156 |
public Dictionary<Thumb, DragData> _dragData = new Dictionary<Thumb, DragData>(); |
... | ... | |
221 | 220 |
_dragData.Add(rotateTop, new DragData() { CursorAngle = 0, DragType = DragType.Rotate, RotateIsLeft = true, RotateIsTop = true }); |
222 | 221 |
} |
223 | 222 |
|
224 |
~AdornerFinal() |
|
225 |
{ |
|
226 |
this.Dispose(false); |
|
227 |
} |
|
228 |
|
|
229 |
public void Dispose() |
|
230 |
{ |
|
231 |
this.Dispose(true); |
|
232 |
GC.SuppressFinalize(this); |
|
233 |
} |
|
234 |
|
|
235 |
protected virtual void Dispose(bool disposing) |
|
236 |
{ |
|
237 |
if (this.disposed) return; |
|
238 |
if (disposing) |
|
239 |
{ |
|
240 |
foreach (var member in this.Members) |
|
241 |
{ |
|
242 |
if(!Common.ViewerDataModel.Instance.MarkupControls_USER.Contains(member.DrawingData)) |
|
243 |
Common.ViewerDataModel.Instance.MarkupControls_USER.Add(member.DrawingData as CommentUserInfo); |
|
244 |
} |
|
245 |
// IDisposable 인터페이스를 구현하는 멤버들을 여기서 정리합니다. |
|
246 |
} |
|
247 |
// .NET Framework에 의하여 관리되지 않는 외부 리소스들을 여기서 정리합니다. |
|
248 |
this.disposed = true; |
|
249 |
} |
|
250 |
|
|
251 |
void DragThumb_Loaded(object sender, RoutedEventArgs e) |
|
252 |
{ |
|
253 |
mainDragThumb = DragThumb; |
|
254 |
} |
|
255 |
|
|
256 | 223 |
public AdornerFinal(CommentUserInfo objectData) : this() |
257 | 224 |
{ |
258 | 225 |
InitializeComponent(); |
... | ... | |
266 | 233 |
///Canvas.SetZIndex(objectData, 84); |
267 | 234 |
try |
268 | 235 |
{ |
236 |
objectData.Index = ViewerDataModel.Instance.MarkupControls_USER.IndexOf(objectData); |
|
269 | 237 |
ViewerDataModel.Instance.MarkupControls_USER.Remove(objectData); |
270 | 238 |
this.ContainerContent.Children.Add(objectData); |
271 | 239 |
} |
272 | 240 |
catch (Exception ex) |
273 | 241 |
{ |
274 |
|
|
242 |
throw new InvalidOperationException(ex.Message); |
|
275 | 243 |
} |
276 |
|
|
244 |
|
|
277 | 245 |
SetAdornerMember(objectData); |
278 | 246 |
this.Focus(); |
279 | 247 |
} |
... | ... | |
292 | 260 |
{ |
293 | 261 |
///Canvas.SetZIndex(item, 80); |
294 | 262 |
|
263 |
item.Index = ViewerDataModel.Instance.MarkupControls_USER.IndexOf(item); |
|
295 | 264 |
ViewerDataModel.Instance.MarkupControls_USER.Remove(item); |
296 | 265 |
this.ContainerContent.Children.Add(item); |
297 | 266 |
} |
298 |
catch //(Exception ex)
|
|
267 |
catch (Exception ex) |
|
299 | 268 |
{ |
269 |
throw new InvalidOperationException(ex.Message); |
|
300 | 270 |
} |
301 | 271 |
finally |
302 | 272 |
{ |
303 |
|
|
273 |
|
|
304 | 274 |
} |
305 | 275 |
} |
276 |
|
|
306 | 277 |
this.SetAdornerMember(objectData); |
307 | 278 |
this.Focus(); |
308 | 279 |
} |
309 | 280 |
|
281 |
~AdornerFinal() |
|
282 |
{ |
|
283 |
this.Dispose(false); |
|
284 |
} |
|
285 |
|
|
286 |
public void Dispose() |
|
287 |
{ |
|
288 |
this.Dispose(true); |
|
289 |
GC.SuppressFinalize(this); |
|
290 |
} |
|
291 |
|
|
292 |
protected virtual void Dispose(bool disposing) |
|
293 |
{ |
|
294 |
if (this.disposed) return; |
|
295 |
if (disposing) |
|
296 |
{ |
|
297 |
foreach (var member in this.Members) |
|
298 |
{ |
|
299 |
if(!Common.ViewerDataModel.Instance.MarkupControls_USER.Contains(member.DrawingData)) |
|
300 |
Common.ViewerDataModel.Instance.MarkupControls_USER.Add(member.DrawingData as CommentUserInfo); |
|
301 |
} |
|
302 |
// IDisposable 인터페이스를 구현하는 멤버들을 여기서 정리합니다. |
|
303 |
} |
|
304 |
// .NET Framework에 의하여 관리되지 않는 외부 리소스들을 여기서 정리합니다. |
|
305 |
this.disposed = true; |
|
306 |
} |
|
307 |
|
|
308 |
void DragThumb_Loaded(object sender, RoutedEventArgs e) |
|
309 |
{ |
|
310 |
mainDragThumb = DragThumb; |
|
311 |
} |
|
312 |
|
|
310 | 313 |
public Point Centeroid |
311 | 314 |
{ |
312 | 315 |
get |
KCOM/Views/MainMenu.xaml.cs | ||
---|---|---|
1086 | 1086 |
{ |
1087 | 1087 |
var control = await MarkupParser.ParseExAsync(App.BaseAddress, cts, App.ViewInfo.ProjectNO, markup.Data, Common.ViewerDataModel.Instance.MarkupControls_USER, PageAngle, sColor, "", |
1088 | 1088 |
markup.MarkupInfoID, markup.ID); |
1089 |
Canvas.SetZIndex(control, (control as CommentUserInfo).ZIndex); |
|
1090 |
control.Visibility = Visibility.Hidden; |
|
1089 |
if (control != null) |
|
1090 |
{ |
|
1091 |
Canvas.SetZIndex(control, (control as CommentUserInfo).ZIndex); |
|
1092 |
control.Visibility = Visibility.Hidden; |
|
1093 |
} |
|
1091 | 1094 |
} |
1092 | 1095 |
else |
1093 | 1096 |
{ |
1094 | 1097 |
var control = await MarkupParser.ParseExAsync(App.BaseAddress, cts, App.ViewInfo.ProjectNO, markup.Data, Common.ViewerDataModel.Instance.MarkupControls, PageAngle, sColor, "", |
1095 | 1098 |
markup.MarkupInfoID, markup.ID); |
1096 |
Canvas.SetZIndex(control, (control as CommentUserInfo).ZIndex); |
|
1097 |
control.Visibility = Visibility.Hidden; |
|
1099 |
if (control != null) |
|
1100 |
{ |
|
1101 |
Canvas.SetZIndex(control, (control as CommentUserInfo).ZIndex); |
|
1102 |
control.Visibility = Visibility.Hidden; |
|
1103 |
} |
|
1098 | 1104 |
} |
1099 | 1105 |
} |
1100 | 1106 |
} |
... | ... | |
4732 | 4738 |
//{ |
4733 | 4739 |
btnFinalPDF.IsEnabled = false; |
4734 | 4740 |
btnConsolidate.IsEnabled = false; |
4735 |
var result = await ConsolidationMethod();
|
|
4741 |
var result = await ConsolidationMethod(); |
|
4736 | 4742 |
|
4737 | 4743 |
if(result) |
4738 | 4744 |
{ |
License.Validator/License.Validator.csproj | ||
---|---|---|
58 | 58 |
<Project>{22ceb718-f446-4847-869f-974d34cdc33f}</Project> |
59 | 59 |
<Name>licenseInterface</Name> |
60 | 60 |
</ProjectReference> |
61 |
<ProjectReference Include="..\Rhino.Licensing\Rhino.Licensing.csproj"> |
|
62 |
<Project>{05efd7eb-f0fb-4b65-8e4a-c8ff8ddc6a78}</Project> |
|
63 |
<Name>Rhino.Licensing</Name> |
|
64 |
</ProjectReference> |
|
65 | 61 |
</ItemGroup> |
66 | 62 |
<ItemGroup> |
67 | 63 |
<None Include="obfuscar.xml"> |
License/License.csproj | ||
---|---|---|
99 | 99 |
<Project>{22ceb718-f446-4847-869f-974d34cdc33f}</Project> |
100 | 100 |
<Name>licenseInterface</Name> |
101 | 101 |
</ProjectReference> |
102 |
<ProjectReference Include="..\Rhino.Licensing\Rhino.Licensing.csproj"> |
|
103 |
<Project>{05efd7eb-f0fb-4b65-8e4a-c8ff8ddc6a78}</Project> |
|
104 |
<Name>Rhino.Licensing</Name> |
|
105 |
</ProjectReference> |
|
106 | 102 |
</ItemGroup> |
107 | 103 |
<ItemGroup> |
108 | 104 |
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" /> |
MarkupToPDF/Common/CommentUserInfo.cs | ||
---|---|---|
37 | 37 |
[Description("ZIndex 값이 높을 수록 앞쪽으로 배치된다.")] |
38 | 38 |
public int ZIndex { get; set; } = 10; |
39 | 39 |
|
40 |
[Description("리스트 인덱스")] |
|
41 |
public int Index { get; set; } |
|
42 |
|
|
40 | 43 |
private SolidColorBrush _TempBorderBrush { get; set; } |
41 | 44 |
private SolidColorBrush _HoverBorderBrush { get; } = new SolidColorBrush(Color.FromRgb(255, 0, 255)); |
42 | 45 |
|
MarkupToPDF/Controls/Etc/ImgControl.cs | ||
---|---|---|
537 | 537 |
public static ImgControl FromString(string str, SolidColorBrush brush, string sProjectNo, string baseUri) |
538 | 538 |
{ |
539 | 539 |
ImgControl instance = null; |
540 |
using (S_ImgControl s = JsonSerializerHelper.JsonDeserialize<S_ImgControl>(str))
|
|
540 |
try
|
|
541 | 541 |
{ |
542 |
UriBuilder downloadUri = new UriBuilder(baseUri); |
|
543 |
UriBuilder uri = new UriBuilder(s.ImagePath); |
|
544 |
uri.Host = downloadUri.Host; |
|
545 |
uri.Port = downloadUri.Port; |
|
546 |
|
|
547 |
Image img = new Image(); |
|
548 |
if (s.ImagePath.Contains(".svg")) |
|
549 |
{ |
|
550 |
SharpVectors.Converters.SvgImageExtension svgImage = new SharpVectors.Converters.SvgImageExtension(uri.ToString()); |
|
551 |
var svg = svgImage.ProvideValue(null); |
|
552 |
|
|
553 |
img.Source = (DrawingImage)svg; |
|
554 |
} |
|
555 |
else |
|
542 |
using (S_ImgControl s = JsonSerializerHelper.JsonDeserialize<S_ImgControl>(str)) |
|
556 | 543 |
{ |
557 |
img.Source = new BitmapImage(uri.Uri); |
|
544 |
UriBuilder downloadUri = new UriBuilder(baseUri); |
|
545 |
UriBuilder uri = new UriBuilder(s.ImagePath); |
|
546 |
uri.Host = downloadUri.Host; |
|
547 |
uri.Port = downloadUri.Port; |
|
548 |
|
|
549 |
Image img = new Image(); |
|
550 |
if (s.ImagePath.Contains(".svg")) |
|
551 |
{ |
|
552 |
SharpVectors.Converters.SvgImageExtension svgImage = new SharpVectors.Converters.SvgImageExtension(uri.ToString()); |
|
553 |
var svg = svgImage.ProvideValue(null); |
|
554 |
|
|
555 |
img.Source = (DrawingImage)svg; |
|
556 |
} |
|
557 |
else |
|
558 |
{ |
|
559 |
img.Source = new BitmapImage(uri.Uri); |
|
560 |
} |
|
561 |
|
|
562 |
instance = new ImgControl |
|
563 |
{ |
|
564 |
CommentAngle = s.Angle, |
|
565 |
StartPoint = s.StartPoint, |
|
566 |
TopRightPoint = s.TR, |
|
567 |
EndPoint = s.EndPoint, |
|
568 |
LeftBottomPoint = s.LB, |
|
569 |
PointSet = s.PointSet, |
|
570 |
Opacity = s.Opac, |
|
571 |
FilePath = uri.Uri.ToString(), |
|
572 |
UserID = s.UserID, |
|
573 |
ImageData = img.Source, |
|
574 |
Memo = s.Memo, |
|
575 |
ZIndex = s.ZIndex |
|
576 |
}; |
|
577 |
|
|
578 |
instance.ImageData = img.Source; |
|
558 | 579 |
} |
559 |
|
|
560 |
instance = new ImgControl |
|
561 |
{ |
|
562 |
CommentAngle = s.Angle, |
|
563 |
StartPoint = s.StartPoint, |
|
564 |
TopRightPoint = s.TR, |
|
565 |
EndPoint = s.EndPoint, |
|
566 |
LeftBottomPoint = s.LB, |
|
567 |
PointSet = s.PointSet, |
|
568 |
Opacity = s.Opac, |
|
569 |
FilePath = uri.Uri.ToString(), |
|
570 |
UserID = s.UserID, |
|
571 |
ImageData = img.Source, |
|
572 |
Memo = s.Memo, |
|
573 |
ZIndex = s.ZIndex |
|
574 |
}; |
|
575 |
|
|
576 |
instance.ImageData = img.Source; |
|
580 |
} |
|
581 |
catch (Exception) |
|
582 |
{ |
|
577 | 583 |
} |
578 | 584 |
|
579 | 585 |
return instance; |
MarkupToPDF/Controls/Parsing/MarkupParse.cs | ||
---|---|---|
308 | 308 |
{ |
309 | 309 |
baseLayer.Add(control); |
310 | 310 |
control.ApplyTemplate(); |
311 |
#region ZIndex 설정 |
|
311 | 312 |
Canvas.SetZIndex(control, control.ZIndex); |
313 |
#endregion |
|
312 | 314 |
|
313 | 315 |
if (control is ArrowTextControl ArrTextCtrl) |
314 | 316 |
{ |
license.iValidator/licenseInterface.csproj | ||
---|---|---|
45 | 45 |
<Compile Include="iValidator.cs" /> |
46 | 46 |
<Compile Include="Properties\AssemblyInfo.cs" /> |
47 | 47 |
</ItemGroup> |
48 |
<ItemGroup> |
|
49 |
<ProjectReference Include="..\Rhino.Licensing\Rhino.Licensing.csproj"> |
|
50 |
<Project>{05efd7eb-f0fb-4b65-8e4a-c8ff8ddc6a78}</Project> |
|
51 |
<Name>Rhino.Licensing</Name> |
|
52 |
</ProjectReference> |
|
53 |
</ItemGroup> |
|
54 | 48 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
55 | 49 |
</Project> |
내보내기 Unified diff