개정판 b10671a4
layout 변경
Change-Id: Iee33e49e17ec1fd14b2820f01f619a99ae17147e
KCOM.sln | ||
---|---|---|
38 | 38 |
EndProject |
39 | 39 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Markus.Mvvm.ToolKit", "Markus.Mvvm.ToolKit\Markus.Mvvm.ToolKit.csproj", "{9EFE95D6-9985-422A-A76F-285C8CF73617}" |
40 | 40 |
EndProject |
41 |
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "문서", "문서", "{21A2BEE3-6FC9-4A6F-8CE2-1DF86816BE4A}" |
|
42 |
ProjectSection(SolutionItems) = preProject |
|
43 |
테스트.txt = 테스트.txt |
|
44 |
EndProjectSection |
|
45 |
EndProject |
|
41 | 46 |
Global |
42 |
GlobalSection(Performance) = preSolution |
|
43 |
HasPerformanceSessions = true |
|
44 |
EndGlobalSection |
|
45 | 47 |
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
46 | 48 |
Debug|Any CPU = Debug|Any CPU |
47 | 49 |
Debug|x64 = Debug|x64 |
... | ... | |
253 | 255 |
GlobalSection(Performance) = preSolution |
254 | 256 |
HasPerformanceSessions = true |
255 | 257 |
EndGlobalSection |
258 |
GlobalSection(Performance) = preSolution |
|
259 |
HasPerformanceSessions = true |
|
260 |
EndGlobalSection |
|
256 | 261 |
EndGlobal |
KCOM/App.xaml | ||
---|---|---|
21 | 21 |
<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/Telerik.Windows.Controls.Docking.xaml"/>--> |
22 | 22 | |
23 | 23 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/Telerik.Windows.Controls.Docking.xaml"/>--> |
24 |
<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/System.Windows.xaml"/> |
|
24 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/System.Windows.xaml"/>
|
|
25 | 25 |
<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.xaml"/> |
26 |
<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Input.xaml"/> |
|
26 |
<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Input.xaml"/>-->
|
|
27 | 27 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.RibbonView.xaml"/>--> |
28 | 28 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Docking.xaml"/>--> |
29 | 29 |
</ResourceDictionary.MergedDictionaries> |
KCOM/App.xaml.cs | ||
---|---|---|
55 | 55 |
{ |
56 | 56 |
get |
57 | 57 |
{ |
58 |
return DesignerProperties.GetIsInDesignMode(new DependencyObject()); |
|
58 |
try |
|
59 |
{ |
|
60 |
return DesignerProperties.GetIsInDesignMode(new DependencyObject()); |
|
61 |
} |
|
62 |
catch (Exception) |
|
63 |
{ |
|
64 |
return false; |
|
65 |
} |
|
59 | 66 |
} |
60 | 67 |
private set { } |
61 | 68 |
} |
... | ... | |
118 | 125 | |
119 | 126 |
public App() |
120 | 127 |
{ |
121 |
Telerik.Windows.Controls.StyleManager.ApplicationTheme = new Telerik.Windows.Controls.VisualStudio2013Theme();
|
|
128 |
Telerik.Windows.Controls.StyleManager.ApplicationTheme = new Telerik.Windows.Controls.Office2016Theme();
|
|
122 | 129 |
} |
123 | 130 | |
124 | 131 |
protected override async void OnStartup(StartupEventArgs e) |
KCOM/Controls/FavoritePanel.xaml.cs | ||
---|---|---|
29 | 29 |
public FavoritePanel() |
30 | 30 |
{ |
31 | 31 |
//InitializeComponent(); |
32 |
App.splashString(ISplashMessage.FAVORITEPANEL); |
|
33 |
this.Loaded += FavoritePanel_Loaded; |
|
34 | 32 | |
33 |
if (!App.IsDesignMode) |
|
34 |
{ |
|
35 |
App.splashString(ISplashMessage.FAVORITEPANEL); |
|
36 |
this.Loaded += FavoritePanel_Loaded; |
|
37 |
} |
|
35 | 38 |
} |
36 | 39 | |
37 | 40 |
private void FavoritePanel_Loaded(object sender, RoutedEventArgs e) |
KCOM/KCOM.csproj | ||
---|---|---|
210 | 210 |
<Reference Include="System.Xaml"> |
211 | 211 |
<RequiredTargetFramework>4.0</RequiredTargetFramework> |
212 | 212 |
</Reference> |
213 |
<Reference Include="Telerik.Windows.Controls, Version=2019.1.220.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
214 |
<HintPath>..\lib\RCWPF\2019.1.220.40\Telerik.Windows.Controls.dll</HintPath>
|
|
213 |
<Reference Include="Telerik.Windows.Controls, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
214 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Controls.dll</HintPath>
|
|
215 | 215 |
<Private>True</Private> |
216 | 216 |
</Reference> |
217 |
<Reference Include="Telerik.Windows.Controls.Docking, Version=2019.1.220.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
218 |
<HintPath>..\lib\RCWPF\2019.1.220.40\Telerik.Windows.Controls.Docking.dll</HintPath>
|
|
217 |
<Reference Include="Telerik.Windows.Controls.Data, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
218 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Controls.Data.dll</HintPath>
|
|
219 | 219 |
<Private>True</Private> |
220 | 220 |
</Reference> |
221 |
<Reference Include="Telerik.Windows.Controls.GridView, Version=2019.1.220.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
222 |
<HintPath>..\lib\RCWPF\2019.1.220.40\Telerik.Windows.Controls.GridView.dll</HintPath>
|
|
221 |
<Reference Include="Telerik.Windows.Controls.Docking, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
222 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Controls.Docking.dll</HintPath>
|
|
223 | 223 |
<Private>True</Private> |
224 | 224 |
</Reference> |
225 |
<Reference Include="Telerik.Windows.Controls.Input, Version=2019.1.220.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
226 |
<HintPath>..\lib\RCWPF\2019.1.220.40\Telerik.Windows.Controls.Input.dll</HintPath>
|
|
225 |
<Reference Include="Telerik.Windows.Controls.GridView, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
226 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Controls.GridView.dll</HintPath>
|
|
227 | 227 |
<Private>True</Private> |
228 | 228 |
</Reference> |
229 |
<Reference Include="Telerik.Windows.Controls.Navigation, Version=2019.1.220.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
230 |
<HintPath>..\lib\RCWPF\2019.1.220.40\Telerik.Windows.Controls.Navigation.dll</HintPath>
|
|
229 |
<Reference Include="Telerik.Windows.Controls.Input, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
230 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Controls.Input.dll</HintPath>
|
|
231 | 231 |
<Private>True</Private> |
232 | 232 |
</Reference> |
233 |
<Reference Include="Telerik.Windows.Controls.RibbonView, Version=2019.1.220.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
234 |
<HintPath>..\lib\RCWPF\2019.1.220.40\Telerik.Windows.Controls.RibbonView.dll</HintPath>
|
|
233 |
<Reference Include="Telerik.Windows.Controls.Navigation, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
234 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Controls.Navigation.dll</HintPath>
|
|
235 | 235 |
<Private>True</Private> |
236 | 236 |
</Reference> |
237 |
<Reference Include="Telerik.Windows.Data, Version=2019.1.220.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
238 |
<HintPath>..\lib\RCWPF\2019.1.220.40\Telerik.Windows.Data.dll</HintPath>
|
|
237 |
<Reference Include="Telerik.Windows.Controls.RibbonView, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
238 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Controls.RibbonView.dll</HintPath>
|
|
239 | 239 |
<Private>True</Private> |
240 | 240 |
</Reference> |
241 |
<Reference Include="Telerik.Windows.Themes.VisualStudio2013, Version=2018.1.122.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
242 |
<SpecificVersion>False</SpecificVersion>
|
|
243 |
<HintPath>..\packages\Telerik.Windows.Themes.VisualStudio2013.dll</HintPath>
|
|
241 |
<Reference Include="Telerik.Windows.Data, Version=2019.3.917.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL">
|
|
242 |
<HintPath>..\lib\RCWPF\2019.3.917.45\Telerik.Windows.Data.dll</HintPath>
|
|
243 |
<Private>True</Private>
|
|
244 | 244 |
</Reference> |
245 | 245 |
<Reference Include="ToggleSwitch, Version=1.1.2.0, Culture=neutral, PublicKeyToken=8637099990568f75, processorArchitecture=MSIL"> |
246 | 246 |
<HintPath>..\packages\ToggleSwitch.1.1.2\lib\net40-client\ToggleSwitch.dll</HintPath> |
KCOM/KCOM.csproj.user | ||
---|---|---|
13 | 13 |
<VerifyUploadedFiles>false</VerifyUploadedFiles> |
14 | 14 |
</PropertyGroup> |
15 | 15 |
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"> |
16 |
<StartArguments>eyJEb2N1bWVudEl0ZW1JRCI6IjQwMDAwMTQyIiwiYlBhcnRuZXIiOmZhbHNlLCJDcmVhdGVGaW5hbFBERlBlcm1pc3Npb24iOmZhbHNlLCJOZXdDb21tZW50UGVybWlzc2lvbiI6dHJ1ZSwiUHJvamVjdE5PIjoiMDAwMDAwIiwiVXNlcklEIjoiZG9mdGVjaCIsIk1vZGUiOjB9</StartArguments>
|
|
16 |
<StartArguments>eyJEb2N1bWVudEl0ZW1JRCI6MTc4LCJiUGFydG5lciI6ZmFsc2UsIkNyZWF0ZUZpbmFsUERGUGVybWlzc2lvbiI6dHJ1ZSwiTmV3Q29tbWVudFBlcm1pc3Npb24iOnRydWUsIlByb2plY3ROTyI6IjExMTExMSIsIlVzZXJJRCI6ImFkbWluIiwiTW9kZSI6MCwicElkIjoiUDAwMDAwMDAwMDE4IiwidUlkIjoiVTAwMDAwMDAwMDA0In0=/</StartArguments>
|
|
17 | 17 |
</PropertyGroup> |
18 | 18 |
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> |
19 | 19 |
<StartArguments>eyJEb2N1bWVudEl0ZW1JRCI6MTYwLCJiUGFydG5lciI6ZmFsc2UsIkNyZWF0ZUZpbmFsUERGUGVybWlzc2lvbiI6dHJ1ZSwiTmV3Q29tbWVudFBlcm1pc3Npb24iOnRydWUsIlByb2plY3ROTyI6IjExMTExMSIsIlVzZXJJRCI6ImFkbWluIiwiTW9kZSI6MCwicElkIjoiUDAwMDAwMDAwMDE4IiwidUlkIjoiVTAwMDAwMDAwMDA1In0=/</StartArguments> |
KCOM/MainWindow.xaml.cs | ||
---|---|---|
43 | 43 |
|
44 | 44 |
ProgressControl progressControl = null; |
45 | 45 |
string destfilepath = string.Empty; |
46 |
static MainWindow() |
|
47 |
{ |
|
48 |
StyleManager.ApplicationTheme = new VisualStudio2013Theme(); |
|
49 |
RadRibbonWindow.IsWindowsThemeEnabled = false; |
|
50 |
} |
|
46 | 51 | |
47 | 52 |
public MainWindow() |
48 | 53 |
{ |
KCOM/ViewModel/BiddersViewModel.cs | ||
---|---|---|
91 | 91 | |
92 | 92 |
public BiddersViewModel() |
93 | 93 |
{ |
94 |
if (App.IsDesignMode) |
|
95 |
return; |
|
96 | ||
94 | 97 |
try |
95 | 98 |
{ |
96 | 99 |
if (pemssServiceClient == null) |
... | ... | |
102 | 105 |
} |
103 | 106 |
catch (Exception ex) |
104 | 107 |
{ |
105 | ||
106 |
throw; |
|
108 |
System.Diagnostics.Debug.WriteLine(ex); |
|
107 | 109 |
} |
108 | 110 |
} |
109 | 111 |
KCOM/ViewModel/RequirementViewModel.cs | ||
---|---|---|
91 | 91 | |
92 | 92 |
public RequirementViewModel() |
93 | 93 |
{ |
94 |
if (App.IsDesignMode) |
|
95 |
return; |
|
96 | ||
94 | 97 |
try |
95 | 98 |
{ |
96 | 99 |
if (pemssServiceClient == null) |
... | ... | |
103 | 106 |
catch (Exception ex) |
104 | 107 |
{ |
105 | 108 | |
106 |
throw;
|
|
109 |
System.Diagnostics.Debug.WriteLine(ex);
|
|
107 | 110 |
} |
108 | 111 |
} |
109 | 112 |
KCOM/Views/BiddersView.xaml | ||
---|---|---|
11 | 11 |
xmlns:convert="clr-namespace:KCOM.Converters" |
12 | 12 |
xmlns:Behaviors="clr-namespace:KCOM.Behaviors" |
13 | 13 |
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" |
14 |
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="350" DataContext="{DynamicResource ViewModel}"> |
|
14 |
xmlns:controls1="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Data" |
|
15 |
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="350" DataContext="{DynamicResource ViewModel}"> |
|
15 | 16 |
<UserControl.Resources> |
16 | 17 |
<viewmodel:BiddersViewModel x:Key="ViewModel"/> |
17 | 18 |
<convert:StringMultiLineConvert x:Key="StringMultiLineConvert"/> |
... | ... | |
50 | 51 |
<telerik:RadToggleButton Width="15" Height="15" Command="{Binding RefreshCommand}"> |
51 | 52 |
<Image Stretch="Fill" Source="/KCOM;component/Resources/Images/MenuImage/Refresh.png"/> |
52 | 53 |
</telerik:RadToggleButton> |
53 |
|
|
54 |
<telerik:RadGridView> |
|
55 |
|
|
56 |
</telerik:RadGridView> |
|
54 | 57 |
</WrapPanel> |
55 | 58 |
</Grid> |
56 | 59 |
|
57 |
<telerik:RadGridView Grid.Row="2" AutoGenerateColumns="False" ItemsSource="{Binding RequirementList}" ShowGroupPanel="False" |
|
58 |
CanUserFreezeColumns="False" x:Name="Gridview" SelectedItem="{Binding SelectRequirement}" |
|
59 |
RowIndicatorVisibility="Collapsed" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ColumnWidth="*" |
|
60 |
IsExpandedBinding="{Binding IsExpanded,Mode=TwoWay}" IsExpandableBinding="{Binding IsExpandable, Mode=TwoWay}" |
|
61 |
GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="Orange"> |
|
62 |
<i:Interaction.Behaviors> |
|
63 |
<Behaviors:ColumnFilterBehavior DefaultOperator="Contains"/> |
|
64 |
</i:Interaction.Behaviors> |
|
65 |
<telerik:RadGridView.ChildTableDefinitions> |
|
66 |
<telerik:GridViewTableDefinition/> |
|
67 |
</telerik:RadGridView.ChildTableDefinitions> |
|
68 |
<telerik:RadGridView.Columns> |
|
69 |
<telerik:GridViewDataColumn Header="Commant" IsReadOnly="True" IsFilterable="True" |
|
70 |
TextAlignment="Left" TextWrapping="WrapWithOverflow" |
|
71 |
DataMemberBinding="{Binding mdText,Converter={StaticResource StringMultiLineConvert}}"> |
|
72 |
<!--<telerik:GridViewDataColumn.CellTemplate> |
|
73 |
<DataTemplate> |
|
74 |
<controls:ExtendTextBox Text="{Binding mdText,Converter={StaticResource StringMultiLineConvert}}"/> |
|
75 |
</DataTemplate> |
|
76 |
</telerik:GridViewDataColumn.CellTemplate>--> |
|
77 |
</telerik:GridViewDataColumn> |
|
78 |
</telerik:RadGridView.Columns> |
|
79 |
<telerik:RadGridView.HierarchyChildTemplate> |
|
80 |
<DataTemplate> |
|
81 |
<Grid Background="#FF999999"> |
|
82 |
<Grid.RowDefinitions> |
|
83 |
<RowDefinition Height="Auto"/> |
|
84 |
<RowDefinition Height="*"/> |
|
85 |
</Grid.RowDefinitions> |
|
86 |
<Grid.ColumnDefinitions> |
|
87 |
<ColumnDefinition Width="10"/> |
|
88 |
<ColumnDefinition Width="*"/> |
|
89 |
</Grid.ColumnDefinitions> |
|
90 |
<telerik:RadPathButton Width="100" Height="24" HorizontalAlignment="Left" Content="연결 추가" FontSize="12" Grid.ColumnSpan="2" Margin="15,2,2,2" |
|
91 |
Command="{Binding AddVPCommentCommand, Source={StaticResource ViewModel}}" |
|
92 |
ContentPlacement="Left" |
|
93 |
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" |
|
94 |
PathGeometry="m4,7l0,2l3,0l0,3l2,0l0,-3l3,0l0,-2l-3,0l0,-3l-2,0l0,3l-3,0zm4,9c-4.41828,0 -8,-3.58172 -8,-8c0,-4.41828 3.58172,-8 8,-8c4.41828,0 8,3.58172 8,8c0,4.41828 -3.58172,8 -8,8zm0,0" > |
|
95 |
<telerik:RadPathButton.PathStyle> |
|
96 |
<Style TargetType="Path"> |
|
97 |
<Setter Property="Width" Value="18"/> |
|
98 |
<Setter Property="Height" Value="18"/> |
|
99 |
<Setter Property="Fill" Value="#FF0A93E2" /> |
|
100 |
<Setter Property="Stretch" Value="Fill" /> |
|
101 |
<Setter Property="HorizontalAlignment" Value="Right" /> |
|
102 |
<Setter Property="VerticalAlignment" Value="Center" /> |
|
103 |
</Style> |
|
104 |
</telerik:RadPathButton.PathStyle> |
|
105 |
</telerik:RadPathButton> |
|
106 |
<telerik:RadGridView x:Name="DetailGridView" GroupRenderMode="Flat" Grid.Row="1" |
|
107 |
BorderThickness="0,1,0,1" Grid.Column="1" |
|
108 |
GridLinesVisibility="Both" |
|
109 |
ScrollViewer.HorizontalScrollBarVisibility="Disabled" ColumnWidth="*" |
|
110 |
CanUserFreezeColumns="False" HorizontalGridLinesBrush="#FFB0AFAF" |
|
111 |
AutoGenerateColumns="False" behavior:GridViewAutoWidthBehavior.IsEnabled="True" |
|
112 |
ItemsSource="{Binding VpComments}" |
|
113 |
ShowGroupPanel="False" SelectedItem="{Binding SelectVPComment, Source={StaticResource ViewModel}}" |
|
114 |
IsReadOnly="True"> |
|
115 |
<i:Interaction.Triggers> |
|
116 |
<i:EventTrigger EventName="SelectionChanged"> |
|
117 |
<i:InvokeCommandAction Command="{Binding SelectedVPCommentCommand, Source={StaticResource ViewModel}}"/> |
|
118 |
</i:EventTrigger> |
|
119 |
</i:Interaction.Triggers> |
|
120 |
<telerik:RadGridView.Columns> |
|
121 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding createdByName}" Width="80" IsFilterable="False" IsReadOnly="True" |
|
122 |
Header="Create User" /> |
|
123 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding comment}" TextAlignment="Left" IsReadOnly="True" TextTrimming="CharacterEllipsis" IsFilterable="False" |
|
124 |
Header="Comment" /> |
|
125 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding condition,Mode=TwoWay}" Header="Condition" Width="64" IsReadOnly="True"/> |
|
126 |
<telerik:GridViewDataColumn Width="24" IsFilterable="False" IsReadOnly="True"> |
|
127 |
<telerik:GridViewDataColumn.CellTemplate> |
|
128 |
<DataTemplate> |
|
129 |
<telerik:RadPathButton ToolTip="Delete Comment" Height="22" Width="22" |
|
130 |
Command="{Binding DelVPCommentCommand, Source={StaticResource ViewModel}}" |
|
131 |
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" Background="{x:Null}" BorderBrush="{x:Null}" |
|
132 |
PathGeometry="M108.319,108.319c-2.106,2.107-5.523,2.106-7.632-0.001l-0.003-0.003L70.159,77.79L39.63,108.318 c-2.106,2.108-5.523,2.107-7.634,0c-2.104-2.106-2.105-5.523,0-7.633l30.528-30.528l-30.54-30.541 c-2.106-2.104-2.106-5.521,0-7.631c2.105-2.107,5.522-2.107,7.633-0.001l30.541,30.541l30.528-30.527 c2.105-2.105,5.523-2.105,7.633,0c2.109,2.106,2.107,5.524,0,7.633L77.791,70.157l30.527,30.528 C110.427,102.794,110.427,106.212,108.319,108.319 M119.767,119.767c27.396-27.397,27.396-71.818,0-99.217 C92.37-6.849,47.947-6.85,20.547,20.548c-27.397,27.398-27.396,71.819,0.001,99.22C47.947,147.166,92.368,147.165,119.767,119.767"> |
|
133 |
</telerik:RadPathButton> |
|
134 |
</DataTemplate> |
|
135 |
</telerik:GridViewDataColumn.CellTemplate> |
|
136 |
</telerik:GridViewDataColumn> |
|
137 |
</telerik:RadGridView.Columns> |
|
138 |
</telerik:RadGridView> |
|
139 |
</Grid> |
|
140 |
</DataTemplate> |
|
141 |
</telerik:RadGridView.HierarchyChildTemplate> |
|
142 |
</telerik:RadGridView> |
|
143 | 60 |
</Grid> |
144 | 61 |
</UserControl> |
KCOM/Views/MainMenu.xaml | ||
---|---|---|
538 | 538 |
</telerik:RadPaneGroup> |
539 | 539 |
</telerik:RadSplitContainer> |
540 | 540 | |
541 |
<telerik:RadSplitContainer Orientation="Vertical" InitialPosition="DockedRight" MaxWidth="450" Width="400">
|
|
541 |
<telerik:RadSplitContainer Orientation="Vertical" InitialPosition="DockedRight"> |
|
542 | 542 |
<telerik:RadPaneGroup telerik:StyleManager.Theme="Office2016"> |
543 | 543 |
<telerik:RadPane Header="PEMSS" Visibility="Visible" CanFloat="False" CanUserClose="False" ContextMenuTemplate="{x:Null}" IsPinned="True" telerik:StyleManager.Theme="Office2016" x:Name="pemssPanel"> |
544 |
<telerik:RadTabControl> |
|
545 |
<telerik:RadTabControl.Items> |
|
546 |
<telerik:RadTabItem Header="PEMSS"> |
|
547 |
<view:RequirementView/> |
|
548 |
</telerik:RadTabItem> |
|
549 |
<telerik:RadTabItem Header="Bidders"> |
|
550 |
<view:BiddersView/> |
|
551 |
</telerik:RadTabItem> |
|
552 |
</telerik:RadTabControl.Items> |
|
553 |
</telerik:RadTabControl> |
|
544 |
|
|
554 | 545 |
</telerik:RadPane> |
555 | 546 |
</telerik:RadPaneGroup> |
556 | 547 |
<telerik:RadPaneGroup telerik:StyleManager.Theme="Office2016"> |
... | ... | |
578 | 569 |
</telerik:RadSplitContainer> |
579 | 570 |
<telerik:RadSplitContainer Orientation="Horizontal" InitialPosition="DockedBottom"> |
580 | 571 |
<telerik:RadPaneGroup telerik:StyleManager.Theme="Office2016" telerik:ProportionalStackPanel.RelativeSize="140, 100"> |
581 |
<telerik:RadPane Header="User information List" CanFloat="False" CanUserClose="False" ContextMenuTemplate="{x:Null}" telerik:StyleManager.Theme="Office2016" x:Name="infoListPane"> |
|
582 |
<telerik:RadPane.TitleTemplate> |
|
583 |
<DataTemplate> |
|
584 |
<Grid> |
|
585 |
<Grid.ColumnDefinitions> |
|
586 |
<ColumnDefinition Width="*" /> |
|
587 |
<ColumnDefinition Width="Auto" /> |
|
588 |
</Grid.ColumnDefinitions> |
|
589 | ||
590 |
<StackPanel Orientation="Horizontal"> |
|
591 |
<TextBlock Margin="1" |
|
592 |
VerticalAlignment="Center" |
|
593 |
Text="{Binding}" /> |
|
594 |
<telerik:RadRibbonButton x:Name="btnConsolidate" |
|
595 |
VerticalAlignment="Center" |
|
596 |
Click="btnConsolidate_Click" |
|
597 |
Loaded="btnConsolidate_Loaded" |
|
598 |
telerik:StyleManager.Theme="Office2016" |
|
599 |
ToolTipService.ToolTip="Consolidate"> |
|
600 |
<Border Background="#E9F0F8" |
|
601 |
BorderBrush="#839AB3" |
|
602 |
BorderThickness="1"> |
|
603 |
<StackPanel Margin="1" Orientation="Horizontal"> |
|
604 |
<!--<Image Width="15" Source="/DeepView;component/Images/MenuImage/document-new.png" />--> |
|
605 |
<TextBlock Margin="1" |
|
606 |
VerticalAlignment="Center" |
|
607 |
Foreground="Black" |
|
608 |
Text="Consolidate" /> |
|
609 |
</StackPanel> |
|
610 |
</Border> |
|
611 |
</telerik:RadRibbonButton> |
|
612 |
<telerik:RadRibbonButton x:Name="btnTeamConsolidate" |
|
613 |
VerticalAlignment="Center" |
|
614 |
Click="btnTeamConsolidate_Click" |
|
615 |
Loaded="btnTeamConsolidate_Loaded" |
|
616 |
telerik:StyleManager.Theme="Office2016" |
|
617 |
ToolTipService.ToolTip="Consolidate"> |
|
618 |
<Border Background="#E9F0F8" |
|
619 |
BorderBrush="#839AB3" |
|
620 |
BorderThickness="1"> |
|
621 |
<StackPanel Margin="1" Orientation="Horizontal"> |
|
622 |
<!--<Image Width="15" Source="/DeepView;component/Images/MenuImage/document-team.png" />--> |
|
623 |
<TextBlock Margin="1" |
|
624 |
VerticalAlignment="Center" |
|
625 |
Foreground="Black" |
|
626 |
Text="Team Consolidate" /> |
|
627 |
</StackPanel> |
|
628 |
</Border> |
|
629 |
</telerik:RadRibbonButton> |
|
630 |
<telerik:RadRibbonButton x:Name="btnFinalPDF" |
|
631 |
VerticalAlignment="Center" |
|
632 |
Click="FinalPDFEvent" |
|
633 |
Loaded="btnFinalPDF_Loaded" |
|
634 |
telerik:StyleManager.Theme="Office2016" |
|
635 |
ToolTipService.ToolTip="FinalPDF"> |
|
636 |
<Border Background="#E9F0F8" |
|
637 |
BorderBrush="#839AB3" |
|
638 |
BorderThickness="1"> |
|
639 |
<StackPanel Margin="1" Orientation="Horizontal"> |
|
640 |
<!--<Image Width="15" Source="/DeepView;component/Images/MenuImage/final_pdf2.png" />--> |
|
641 |
<TextBlock Margin="1" |
|
642 |
VerticalAlignment="Center" |
|
643 |
Foreground="Black" |
|
644 |
Text="Merged PDF" /> |
|
645 |
</StackPanel> |
|
646 |
</Border> |
|
647 |
</telerik:RadRibbonButton> |
|
648 |
<telerik:RadRibbonButton x:Name="btnConsolidateFinalPDF" |
|
649 |
VerticalAlignment="Center" |
|
650 |
Click="ConsolidateFinalPDFEvent" |
|
651 |
Loaded="btnConsolidateFinalPDF_Loaded" |
|
652 |
telerik:StyleManager.Theme="Office2016" |
|
653 |
ToolTipService.ToolTip="Consolidate & FinalPDF"> |
|
654 |
<Border Background="#E9F0F8" |
|
655 |
BorderBrush="#839AB3" |
|
656 |
BorderThickness="1"> |
|
657 |
<StackPanel Margin="1" Orientation="Horizontal"> |
|
658 |
<!--<Image Width="15" Source="/DeepView;component/Images/MenuImage/final_pdf2.png" />--> |
|
659 |
<TextBlock Margin="1" |
|
660 |
VerticalAlignment="Center" |
|
661 |
Foreground="Black" |
|
662 |
Text="Consolidate & Merged PDF" /> |
|
663 |
</StackPanel> |
|
664 |
</Border> |
|
665 |
</telerik:RadRibbonButton> |
|
666 |
<!--<telerik:RadRibbonButton x:Name="btnAdjust" |
|
667 |
VerticalAlignment="Center" |
|
668 |
Click="btnAdjustEvent" |
|
669 |
Loaded="btnAdjust_Loaded" |
|
670 |
telerik:StyleManager.Theme="Office2016" |
|
671 |
ToolTipService.ToolTip="정합성 목록"> |
|
672 |
<Border Background="#E9F0F8" |
|
673 |
BorderBrush="#839AB3" |
|
674 |
BorderThickness="1"> |
|
675 |
<StackPanel Margin="1" Orientation="Horizontal"> |
|
676 |
--><!--<Image Width="15" Source="/DeepView;component/Images/MenuImage/final_pdf2.png" />--><!-- |
|
677 |
<TextBlock Margin="1" |
|
678 |
VerticalAlignment="Center" |
|
679 |
Foreground="Black" |
|
680 |
Text="정합성 목록"/> |
|
681 |
</StackPanel> |
|
682 |
</Border> |
|
683 |
</telerik:RadRibbonButton>--> |
|
684 |
</StackPanel> |
|
685 |
<!--<StackPanel Grid.Column="1" |
|
686 |
HorizontalAlignment="Right" |
|
687 |
Orientation="Horizontal"> |
|
688 |
<telerik:RadRibbonButton VerticalAlignment="Center" |
|
689 |
Click="ExpandButtonEvent_Click" |
|
690 |
Tag="CLOSE" |
|
691 |
telerik:StyleManager.Theme="Windows8" |
|
692 |
ToolTipService.ToolTip="Expand On"> |
|
693 |
</telerik:RadRibbonButton> |
|
694 | ||
695 |
<telerik:RadRibbonButton VerticalAlignment="Center" |
|
696 |
Click="ExpandButtonEvent_Click" |
|
697 |
Tag="OPEN" |
|
698 |
telerik:StyleManager.Theme="Windows8" |
|
699 |
ToolTipService.ToolTip="Expand Off"> |
|
700 |
<Image Width="15" |
|
701 |
RenderTransformOrigin="0.5,0.5"> |
|
702 |
<Image.RenderTransform> |
|
703 |
<RotateTransform Angle="180" /> |
|
704 |
</Image.RenderTransform> |
|
705 |
</Image> |
|
706 |
</telerik:RadRibbonButton> |
|
707 |
</StackPanel>--> |
|
708 |
</Grid> |
|
709 |
</DataTemplate> |
|
710 |
</telerik:RadPane.TitleTemplate> |
|
711 |
<telerik:RadGridView telerik:StyleManager.Theme="Office2013" ShowGroupPanel="True" ShowGroupFooters="False" AutoExpandGroups="True" x:Name="gridViewMarkup" |
|
572 |
<telerik:RadPane Header="Document Information" CloseButtonVisibility="Collapsed"> |
|
573 |
<telerik:RadLayoutControl ScrollViewer.HorizontalScrollBarVisibility="Disabled" SelectedItem="{x:Null}"> |
|
574 |
<telerik:LayoutControlExpanderGroup IsExpandable="False" x:Name="infoListPane" Header="User information List" telerik:StyleManager.Theme="Office2016"> |
|
575 |
<telerik:RadGridView telerik:StyleManager.Theme="Office2013" ShowGroupPanel="True" ShowGroupFooters="False" AutoExpandGroups="True" x:Name="gridViewMarkup" |
|
712 | 576 |
AutoGenerateColumns="False" HorizontalContentAlignment="Center" SelectionChanged="gridViewMarkup_SelectionChanged" SelectionMode="Multiple" |
713 | 577 |
CanUserDeleteRows="True" CanUserInsertRows="False" IsFilteringAllowed="False" RowIndicatorVisibility="Collapsed" |
714 | 578 |
CanUserSortColumns ="True" > |
... | ... | |
718 | 582 |
<telerik:CountFunction Caption="Entries count : " /> |
719 | 583 |
</telerik:GroupDescriptor.AggregateFunctions> |
720 | 584 |
</telerik:GroupDescriptor> |
721 |
|
|
585 | ||
722 | 586 |
</telerik:RadGridView.GroupDescriptors> |
723 | 587 |
<telerik:RadGridView.RowStyle> |
724 | 588 |
<Style TargetType="telerik:GridViewRow"> |
... | ... | |
813 | 677 |
</DataTemplate> |
814 | 678 |
</telerik:GridViewDataColumn.CellTemplate> |
815 | 679 |
</telerik:GridViewDataColumn> |
816 |
|
|
817 | 680 |
<telerik:GridViewDataColumn Header="DELETE" IsReadOnly="True" Width="Auto"> |
818 | 681 |
<telerik:GridViewDataColumn.CellTemplate> |
819 | 682 |
<DataTemplate> |
... | ... | |
823 | 686 |
</telerik:GridViewDataColumn> |
824 | 687 |
</telerik:RadGridView.Columns> |
825 | 688 |
</telerik:RadGridView> |
826 |
</telerik:RadPane> |
|
827 |
</telerik:RadPaneGroup> |
|
828 |
<telerik:RadPaneGroup telerik:StyleManager.Theme="Office2016" telerik:ProportionalStackPanel.RelativeSize="100, 100"> |
|
829 |
<telerik:RadPane Header="Document History" CanFloat="False" CanUserClose="False" ContextMenuTemplate="{x:Null}" telerik:StyleManager.Theme="Office2016" x:Name="historyPane"> |
|
830 |
<Grid> |
|
689 |
</telerik:LayoutControlExpanderGroup> |
|
690 |
<telerik:LayoutControlSplitter /> |
|
691 |
<telerik:LayoutControlExpanderGroup IsExpandable="False" x:Name="historyPane" Header="Document History" telerik:StyleManager.Theme="Office2016"> |
|
692 |
<Grid> |
|
831 | 693 |
<telerik:RadGridView telerik:StyleManager.Theme="Office2013" ShowGroupPanel="False" ShowGroupFooters="False" AutoExpandGroups="False" x:Name="gridViewHistory" |
832 | 694 |
CanUserDeleteRows="True" CanUserInsertRows="False" IsFilteringAllowed="False" RowIndicatorVisibility="Collapsed" AutoGenerateColumns="False"> |
833 | 695 |
<telerik:RadGridView.Columns> |
... | ... | |
940 | 802 |
<telerik:RadBusyIndicator x:Name="gridViewHistory_Busy" IsBusy="False" telerik:StyleManager.Theme="Office2016" |
941 | 803 |
BusyContent="Sync Data Loading"/> |
942 | 804 |
</Grid> |
805 |
</telerik:LayoutControlExpanderGroup> |
|
806 |
</telerik:RadLayoutControl> |
|
807 |
</telerik:RadPane> |
|
808 |
<telerik:RadPane Header="PEMSS(Requirement and Bidders)" CloseButtonVisibility="Collapsed"> |
|
809 |
<telerik:RadTabControl> |
|
810 |
<telerik:RadTabControl.Items> |
|
811 |
<telerik:RadTabItem Header="PEMSS"> |
|
812 |
<view:RequirementView/> |
|
813 |
</telerik:RadTabItem> |
|
814 |
<telerik:RadTabItem Header="Bidders"> |
|
815 |
<view:BiddersView/> |
|
816 |
</telerik:RadTabItem> |
|
817 |
</telerik:RadTabControl.Items> |
|
818 |
</telerik:RadTabControl> |
|
943 | 819 |
</telerik:RadPane> |
944 | 820 |
</telerik:RadPaneGroup> |
945 | 821 |
</telerik:RadSplitContainer> |
946 | ||
947 | ||
948 | 822 |
</telerik:RadDocking> |
949 | 823 |
</Grid> |
950 | 824 |
</UserControl> |
KCOM/Views/RequirementView.xaml | ||
---|---|---|
11 | 11 |
xmlns:convert="clr-namespace:KCOM.Converters" |
12 | 12 |
xmlns:Behaviors="clr-namespace:KCOM.Behaviors" |
13 | 13 |
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" |
14 |
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="350" DataContext="{DynamicResource ViewModel}">
|
|
14 |
mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="1000" DataContext="{DynamicResource ViewModel}">
|
|
15 | 15 |
<UserControl.Resources> |
16 | 16 |
<viewmodel:RequirementViewModel x:Key="ViewModel"/> |
17 | 17 |
<convert:StringMultiLineConvert x:Key="StringMultiLineConvert"/> |
... | ... | |
24 | 24 |
<i:InvokeCommandAction Command="{Binding ClosingCommand}"/> |
25 | 25 |
</i:EventTrigger> |
26 | 26 |
</i:Interaction.Triggers> |
27 |
<Grid x:Name="grid" Margin="2"> |
|
28 |
<Grid.ColumnDefinitions> |
|
29 |
<ColumnDefinition Width="*"/> |
|
30 |
</Grid.ColumnDefinitions> |
|
31 |
<Grid.RowDefinitions> |
|
32 |
<RowDefinition Height="Auto"/> |
|
33 |
<RowDefinition Height="Auto"/> |
|
34 |
<RowDefinition/> |
|
35 |
</Grid.RowDefinitions> |
|
36 |
<Grid HorizontalAlignment="Right" Visibility="Collapsed"> |
|
37 |
<Grid.ColumnDefinitions> |
|
38 |
<ColumnDefinition/> |
|
39 |
<ColumnDefinition Width="4"/> |
|
40 |
<ColumnDefinition/> |
|
41 |
<ColumnDefinition Width="4"/> |
|
42 |
<ColumnDefinition/> |
|
43 |
</Grid.ColumnDefinitions> |
|
44 |
<WrapPanel Grid.Row="1" HorizontalAlignment="Left" Orientation="Horizontal"> |
|
45 |
<telerik:RadButton Content="추가" Background="#3d3d3d" Foreground="White" Margin="5,0" MinWidth="60" Command="{Binding AddVPCommentCommand}"/> |
|
46 |
<telerik:RadToggleButton Width="20" Height="20" Command="{Binding RefreshCommand}" Margin="3"> |
|
47 |
<Image Stretch="Fill" Source="/KCOM;component/Resources/Images/MenuImage/Refresh.png"/> |
|
48 |
</telerik:RadToggleButton> |
|
49 |
|
|
50 |
<telerik:RadToggleButton Width="15" Height="15" Command="{Binding RefreshCommand}"> |
|
51 |
<Image Stretch="Fill" Source="/KCOM;component/Resources/Images/MenuImage/Refresh.png"/> |
|
52 |
</telerik:RadToggleButton> |
|
53 |
|
|
54 |
</WrapPanel> |
|
55 |
</Grid> |
|
56 |
|
|
57 |
<telerik:RadGridView Grid.Row="2" AutoGenerateColumns="False" ItemsSource="{Binding RequirementList}" ShowGroupPanel="False" |
|
27 |
<telerik:RadLayoutControl ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled" SelectedItem="{x:Null}"> |
|
28 |
<telerik:LayoutControlExpanderGroup IsExpandable="False" telerik:StyleManager.Theme="Office2016"> |
|
29 |
<telerik:RadGridView telerik:StyleManager.Theme="Office2016" AutoGenerateColumns="False" ItemsSource="{Binding RequirementList}" ShowGroupPanel="False" |
|
58 | 30 |
CanUserFreezeColumns="False" x:Name="Gridview" SelectedItem="{Binding SelectRequirement}" |
59 |
RowIndicatorVisibility="Collapsed" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ColumnWidth="*"
|
|
31 |
RowIndicatorVisibility="Collapsed" ScrollViewer.HorizontalScrollBarVisibility="Disabled" |
|
60 | 32 |
IsExpandedBinding="{Binding IsExpanded,Mode=TwoWay}" IsExpandableBinding="{Binding IsExpandable, Mode=TwoWay}" |
61 | 33 |
GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="Orange"> |
62 |
<i:Interaction.Behaviors> |
|
63 |
<Behaviors:ColumnFilterBehavior DefaultOperator="Contains"/> |
|
64 |
</i:Interaction.Behaviors> |
|
65 |
<telerik:RadGridView.ChildTableDefinitions> |
|
66 |
<telerik:GridViewTableDefinition/> |
|
67 |
</telerik:RadGridView.ChildTableDefinitions> |
|
68 |
<telerik:RadGridView.Columns> |
|
69 |
<telerik:GridViewDataColumn Header="Commant" IsReadOnly="True" IsFilterable="True" |
|
34 |
<i:Interaction.Behaviors> |
|
35 |
<Behaviors:ColumnFilterBehavior DefaultOperator="Contains"/> |
|
36 |
</i:Interaction.Behaviors> |
|
37 |
<telerik:RadGridView.Columns> |
|
38 |
<telerik:GridViewDataColumn Header="Commant" IsReadOnly="True" IsFilterable="True" |
|
70 | 39 |
TextAlignment="Left" TextWrapping="WrapWithOverflow" |
71 | 40 |
DataMemberBinding="{Binding mdText,Converter={StaticResource StringMultiLineConvert}}"> |
72 |
<!--<telerik:GridViewDataColumn.CellTemplate> |
|
73 |
<DataTemplate> |
|
74 |
<controls:ExtendTextBox Text="{Binding mdText,Converter={StaticResource StringMultiLineConvert}}"/> |
|
75 |
</DataTemplate> |
|
76 |
</telerik:GridViewDataColumn.CellTemplate>--> |
|
77 |
</telerik:GridViewDataColumn> |
|
78 |
</telerik:RadGridView.Columns> |
|
79 |
<telerik:RadGridView.HierarchyChildTemplate> |
|
80 |
<DataTemplate> |
|
81 |
<Grid Background="#FF999999"> |
|
82 |
<Grid.RowDefinitions> |
|
83 |
<RowDefinition Height="Auto"/> |
|
84 |
<RowDefinition Height="*"/> |
|
85 |
</Grid.RowDefinitions> |
|
86 |
<Grid.ColumnDefinitions> |
|
87 |
<ColumnDefinition Width="10"/> |
|
88 |
<ColumnDefinition Width="*"/> |
|
89 |
</Grid.ColumnDefinitions> |
|
90 |
<telerik:RadPathButton Width="100" Height="24" HorizontalAlignment="Left" Content="연결 추가" FontSize="12" Grid.ColumnSpan="2" Margin="15,2,2,2" |
|
41 |
</telerik:GridViewDataColumn> |
|
42 |
</telerik:RadGridView.Columns> |
|
43 |
</telerik:RadGridView> |
|
44 |
</telerik:LayoutControlExpanderGroup> |
|
45 |
<telerik:LayoutControlSplitter/> |
|
46 |
<Grid > |
|
47 |
<Grid.RowDefinitions> |
|
48 |
<RowDefinition Height="Auto"/> |
|
49 |
<RowDefinition Height="Auto"/> |
|
50 |
</Grid.RowDefinitions> |
|
51 |
<StackPanel> |
|
52 |
<telerik:RadPathButton Width="100" HorizontalAlignment="Left" Content="연결 추가" FontSize="12" Grid.ColumnSpan="2" Margin="15,2,2,2" |
|
91 | 53 |
Command="{Binding AddVPCommentCommand, Source={StaticResource ViewModel}}" |
92 |
ContentPlacement="Left" |
|
54 |
ContentPlacement="Left" telerik:StyleManager.Theme="Office2016"
|
|
93 | 55 |
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" |
94 | 56 |
PathGeometry="m4,7l0,2l3,0l0,3l2,0l0,-3l3,0l0,-2l-3,0l0,-3l-2,0l0,3l-3,0zm4,9c-4.41828,0 -8,-3.58172 -8,-8c0,-4.41828 3.58172,-8 8,-8c4.41828,0 8,3.58172 8,8c0,4.41828 -3.58172,8 -8,8zm0,0" > |
95 |
<telerik:RadPathButton.PathStyle> |
|
96 |
<Style TargetType="Path"> |
|
97 |
<Setter Property="Width" Value="18"/> |
|
98 |
<Setter Property="Height" Value="18"/> |
|
99 |
<Setter Property="Fill" Value="#FF0A93E2" /> |
|
100 |
<Setter Property="Stretch" Value="Fill" /> |
|
101 |
<Setter Property="HorizontalAlignment" Value="Right" /> |
|
102 |
<Setter Property="VerticalAlignment" Value="Center" /> |
|
103 |
</Style> |
|
104 |
</telerik:RadPathButton.PathStyle> |
|
105 |
</telerik:RadPathButton> |
|
106 |
<telerik:RadGridView x:Name="DetailGridView" GroupRenderMode="Flat" Grid.Row="1" |
|
107 |
BorderThickness="0,1,0,1" Grid.Column="1" |
|
57 |
<telerik:RadPathButton.PathStyle> |
|
58 |
<Style TargetType="Path"> |
|
59 |
<Setter Property="Width" Value="18"/> |
|
60 |
<Setter Property="Height" Value="18"/> |
|
61 |
<Setter Property="Fill" Value="#FF0A93E2" /> |
|
62 |
<Setter Property="Stretch" Value="Fill" /> |
|
63 |
<Setter Property="HorizontalAlignment" Value="Right" /> |
|
64 |
<Setter Property="VerticalAlignment" Value="Center" /> |
|
65 |
</Style> |
|
66 |
</telerik:RadPathButton.PathStyle> |
|
67 |
</telerik:RadPathButton> |
|
68 |
</StackPanel> |
|
69 |
<telerik:RadGridView x:Name="DetailGridView" GroupRenderMode="Flat" Grid.Row="1" |
|
70 |
BorderThickness="0,1,0,1" Grid.Column="1" telerik:StyleManager.Theme="Office2016" |
|
108 | 71 |
GridLinesVisibility="Both" |
109 |
ScrollViewer.HorizontalScrollBarVisibility="Disabled" ColumnWidth="*"
|
|
72 |
ScrollViewer.HorizontalScrollBarVisibility="Disabled" ColumnWidth="Auto"
|
|
110 | 73 |
CanUserFreezeColumns="False" HorizontalGridLinesBrush="#FFB0AFAF" |
111 | 74 |
AutoGenerateColumns="False" behavior:GridViewAutoWidthBehavior.IsEnabled="True" |
112 |
ItemsSource="{Binding VpComments}" |
|
75 |
ItemsSource="{Binding SelectRequirement.VpComments}"
|
|
113 | 76 |
ShowGroupPanel="False" SelectedItem="{Binding SelectVPComment, Source={StaticResource ViewModel}}" |
114 |
IsReadOnly="True"> |
|
115 |
<i:Interaction.Triggers>
|
|
116 |
<i:EventTrigger EventName="SelectionChanged">
|
|
117 |
<i:InvokeCommandAction Command="{Binding SelectedVPCommentCommand, Source={StaticResource ViewModel}}"/>
|
|
118 |
</i:EventTrigger>
|
|
119 |
</i:Interaction.Triggers>
|
|
120 |
<telerik:RadGridView.Columns>
|
|
121 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding createdByName}" Width="80" IsFilterable="False" IsReadOnly="True"
|
|
77 |
IsReadOnly="True" VerticalAlignment="Top">
|
|
78 |
<i:Interaction.Triggers> |
|
79 |
<i:EventTrigger EventName="SelectionChanged"> |
|
80 |
<i:InvokeCommandAction Command="{Binding SelectedVPCommentCommand, Source={StaticResource ViewModel}}"/> |
|
81 |
</i:EventTrigger> |
|
82 |
</i:Interaction.Triggers> |
|
83 |
<telerik:RadGridView.Columns> |
|
84 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding createdByName}" Width="120" IsFilterable="False" IsReadOnly="True"
|
|
122 | 85 |
Header="Create User" /> |
123 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding comment}" TextAlignment="Left" IsReadOnly="True" TextTrimming="CharacterEllipsis" IsFilterable="False"
|
|
86 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding comment}" Width="200" TextAlignment="Left" IsReadOnly="True" TextTrimming="CharacterEllipsis" IsFilterable="False"
|
|
124 | 87 |
Header="Comment" /> |
125 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding condition,Mode=TwoWay}" Header="Condition" Width="64" IsReadOnly="True"/>
|
|
126 |
<telerik:GridViewDataColumn Width="24" IsFilterable="False" IsReadOnly="True">
|
|
127 |
<telerik:GridViewDataColumn.CellTemplate>
|
|
128 |
<DataTemplate>
|
|
129 |
<telerik:RadPathButton ToolTip="Delete Comment" Height="22" Width="22"
|
|
88 |
<telerik:GridViewDataColumn DataMemberBinding="{Binding condition,Mode=TwoWay}" Header="Condition" Width="Auto" IsReadOnly="True"/>
|
|
89 |
<telerik:GridViewDataColumn Width="Auto" Header="연결 제거" IsFilterable="False" IsReadOnly="True">
|
|
90 |
<telerik:GridViewDataColumn.CellTemplate> |
|
91 |
<DataTemplate> |
|
92 |
<telerik:RadPathButton ToolTip="Delete Comment" Height="22" Width="22" |
|
130 | 93 |
Command="{Binding DelVPCommentCommand, Source={StaticResource ViewModel}}" |
131 | 94 |
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=telerik:GridViewRow}}" Background="{x:Null}" BorderBrush="{x:Null}" |
132 | 95 |
PathGeometry="M108.319,108.319c-2.106,2.107-5.523,2.106-7.632-0.001l-0.003-0.003L70.159,77.79L39.63,108.318 c-2.106,2.108-5.523,2.107-7.634,0c-2.104-2.106-2.105-5.523,0-7.633l30.528-30.528l-30.54-30.541 c-2.106-2.104-2.106-5.521,0-7.631c2.105-2.107,5.522-2.107,7.633-0.001l30.541,30.541l30.528-30.527 c2.105-2.105,5.523-2.105,7.633,0c2.109,2.106,2.107,5.524,0,7.633L77.791,70.157l30.527,30.528 C110.427,102.794,110.427,106.212,108.319,108.319 M119.767,119.767c27.396-27.397,27.396-71.818,0-99.217 C92.37-6.849,47.947-6.85,20.547,20.548c-27.397,27.398-27.396,71.819,0.001,99.22C47.947,147.166,92.368,147.165,119.767,119.767"> |
133 |
</telerik:RadPathButton> |
|
134 |
</DataTemplate> |
|
135 |
</telerik:GridViewDataColumn.CellTemplate> |
|
136 |
</telerik:GridViewDataColumn> |
|
137 |
</telerik:RadGridView.Columns> |
|
138 |
</telerik:RadGridView> |
|
139 |
</Grid> |
|
140 |
</DataTemplate> |
|
141 |
</telerik:RadGridView.HierarchyChildTemplate> |
|
142 |
</telerik:RadGridView> |
|
143 |
</Grid> |
|
96 |
</telerik:RadPathButton> |
|
97 |
</DataTemplate> |
|
98 |
</telerik:GridViewDataColumn.CellTemplate> |
|
99 |
</telerik:GridViewDataColumn> |
|
100 |
</telerik:RadGridView.Columns> |
|
101 |
</telerik:RadGridView> |
|
102 |
</Grid> |
|
103 |
</telerik:RadLayoutControl> |
|
144 | 104 |
</UserControl> |
KCOM/Views/TopMenu.xaml | ||
---|---|---|
1920 | 1920 |
</telerik:RadButton.Content>--> |
1921 | 1921 |
<!--</telerik:RadButton>--> |
1922 | 1922 |
</telerik:RadRibbonTab> |
1923 |
<!-- |
|
1923 |
<telerik:RadRibbonTab Header="CONFIG"> |
|
1924 |
<telerik:RadRibbonGroup DialogLauncherVisibility="Collapsed" |
|
1925 |
telerik:ScreenTip.Description="Application Config." |
|
1926 |
telerik:ScreenTip.Title="File" Header="Scale" |
|
1927 |
Visibility="Visible"> |
|
1928 |
<telerik:RadOrderedWrapPanel> |
|
1929 |
<StackPanel Orientation="Horizontal"> |
|
1930 |
<telerik:RadButton Content="-"/> |
|
1931 |
<telerik:RadSlider VerticalAlignment="Center" Width="180" Margin="10,0" Minimum="0.5" Maximum="1.5" LargeChange="0.2" TickFrequency="0.2" |
|
1932 |
TickPlacement="BottomRight" Value="1" ValueChanged="AppScaleValue_Chnaged"> |
|
1933 |
<telerik:RadSlider.TickTemplate> |
|
1934 |
<DataTemplate> |
|
1935 |
<Grid> |
|
1936 |
<TextBlock Text="{Binding}" /> |
|
1937 |
</Grid> |
|
1938 |
</DataTemplate> |
|
1939 |
</telerik:RadSlider.TickTemplate> |
|
1940 |
</telerik:RadSlider> |
|
1941 |
<telerik:RadButton Content="+"/> |
|
1942 |
<StackPanel> |
|
1943 |
|
|
1944 |
</StackPanel> |
|
1945 |
</StackPanel> |
|
1946 |
|
|
1947 |
</telerik:RadOrderedWrapPanel> |
|
1948 |
</telerik:RadRibbonGroup> |
|
1949 |
</telerik:RadRibbonTab> |
|
1950 |
<!-- |
|
1924 | 1951 |
<telerik:RadRibbonTab Header="OPTION"> |
1925 | 1952 |
<telerik:RadRibbonGroup DialogLauncherVisibility="Collapsed" |
1926 | 1953 |
telerik:ScreenTip.Description="Show the Users options." |
KCOM/Views/TopMenu.xaml.cs | ||
---|---|---|
33 | 33 |
if (!App.ViewInfo.CreateFinalPDFPermission && !App.ViewInfo.NewCommentPermission) |
34 | 34 |
{ |
35 | 35 |
SAVE.Visibility = Visibility.Collapsed; |
36 |
} |
|
36 |
}
|
|
37 | 37 | |
38 | 38 |
if (KCOM.Properties.Settings.Default.cad == 0) |
39 | 39 |
{ |
... | ... | |
110 | 110 |
|
111 | 111 |
} |
112 | 112 | |
113 |
|
|
113 |
private void AppScaleValue_Chnaged(object sender, RoutedPropertyChangedEventArgs<double> e) |
|
114 |
{ |
|
115 |
var windows = App.Current.Windows.OfType<MainWindow>(); |
|
116 | ||
117 |
if (windows != null) |
|
118 |
{ |
|
119 |
var grid = windows.First().FindChildByType<Grid>(); |
|
120 | ||
121 |
if(grid != null) |
|
122 |
{ |
|
123 |
var scaler = grid.LayoutTransform as ScaleTransform; |
|
124 | ||
125 |
if (scaler == null) |
|
126 |
{ |
|
127 |
grid.LayoutTransform = new ScaleTransform(e.NewValue, e.NewValue); |
|
128 |
} |
|
129 |
else if (scaler.HasAnimatedProperties) |
|
130 |
{ |
|
131 |
// Do nothing because the value is being changed by animation. |
|
132 |
// Setting scaler.ScaleX will cause infinite recursion due to the |
|
133 |
// binding specified in the XAML. |
|
134 |
} |
|
135 |
else |
|
136 |
{ |
|
137 |
scaler.ScaleX = e.NewValue; |
|
138 |
scaler.ScaleY = e.NewValue; |
|
139 |
} |
|
140 |
} |
|
141 |
} |
|
142 |
|
|
143 |
} |
|
114 | 144 |
} |
115 | 145 |
} |
KCOM_Backup_2019.09.26_03.36.14/AbstractDatabase.cs | ||
---|---|---|
1 |
using System; |
|
2 |
using System.Collections.Generic; |
|
3 |
using System.Linq; |
|
4 |
using System.Web; |
|
5 |
using System.Data; |
|
6 |
using System.Data.Common; |
|
7 | ||
8 |
namespace KCOM |
|
9 |
{ |
|
10 |
public class ColInfo |
|
11 |
{ |
|
12 |
public string Name { get; set; } |
|
13 |
public string DataType { get; set; } |
|
14 |
} |
|
15 | ||
16 |
/// <summary> |
|
17 |
/// Abstract base class for encapsulating provider independant database interactin logic. |
|
18 |
/// </summary> |
|
19 |
/// <remarks>Version 2.0</remarks> |
|
20 |
/// <typeparam name="CONNECTION_TYPE"><see cref="DbConnection"/> derived Connection type.</typeparam> |
|
21 |
/// <typeparam name="COMMAND_TYPE"><see cref="DbCommand"/> derived Command type.</typeparam> |
|
22 |
/// <typeparam name="ADAPTER_TYPE"><see cref="DbDataAdapater"/> derived Data Adapter type.</typeparam> |
|
23 |
public abstract class AbstractDatabase<CONNECTION_TYPE, COMMAND_TYPE, ADAPTER_TYPE> : IDisposable, IAbstractDatabase |
|
24 |
where CONNECTION_TYPE : DbConnection, new() |
|
25 |
where COMMAND_TYPE : DbCommand |
|
26 |
where ADAPTER_TYPE : DbDataAdapter, new() |
|
27 |
{ |
|
28 |
#region : Connection : |
|
29 | ||
30 |
/// <summary>Gets the Connection object associated with the current instance.</summary> |
|
31 |
public DbConnection Connection |
|
32 |
{ |
|
33 |
get |
|
34 |
{ |
|
35 |
if (internal_currentConnection == null) |
|
36 |
{ |
|
37 |
internal_currentConnection = new CONNECTION_TYPE() { ConnectionString = GetConnectionString() }; |
|
38 |
} |
|
39 |
return internal_currentConnection; |
|
40 |
} |
|
41 |
} |
|
42 |
private DbConnection internal_currentConnection = null; |
|
43 | ||
44 |
/// <summary>When overridden in derived classes returns the connection string for the database.</summary> |
|
45 |
/// <returns>The connection string for the database.</returns> |
|
46 |
protected abstract string GetConnectionString(); |
|
47 | ||
48 |
#endregion |
|
49 | ||
50 |
#region : Commands : |
|
51 | ||
52 |
/// <summary>Gets a DbCommand object with the specified <see cref="DbCommand.CommandText"/>.</summary> |
|
53 |
/// <param name="sqlString">The SQL string.</param> |
|
54 |
/// <returns>A DbCommand object with the specified <see cref="DbCommand.CommandText"/>.</returns> |
|
55 |
public DbCommand GetSqlStringCommand(string sqlString) |
|
56 |
{ |
|
57 |
if (this.Connection.State != ConnectionState.Open) |
|
58 |
this.Connection.Open(); |
|
59 | ||
60 |
DbCommand cmd = this.Connection.CreateCommand(); |
|
61 |
cmd.CommandType = CommandType.Text; |
|
62 |
cmd.CommandText = sqlString; |
|
63 |
cmd.CommandTimeout = 600; // 15.11.04 added by soohyun - Extend Time out of query |
|
64 |
return cmd; |
|
65 |
} |
|
66 | ||
67 |
/// <summary>Gets a DbCommand object with the specified <see cref="DbCommand.CommandText"/>.</summary> |
|
68 |
/// <param name="sqlStringFormat">The SQL string format.</param> |
|
69 |
/// <param name="args">The format arguments.</param> |
|
70 |
/// <returns>A DbCommand object with the specified <see cref="DbCommand.CommandText"/>.</returns> |
|
71 |
public DbCommand GetSqlStringCommand(string sqlStringFormat, params object[] args) |
|
72 |
{ |
|
73 |
return GetSqlStringCommand(string.Format(sqlStringFormat, args)); |
|
74 |
} |
|
75 | ||
76 |
/// <summary>Gets a DbCommand object for the specified Stored Procedure.</summary> |
|
77 |
/// <param name="storedProcName">The name of the stored procedure.</param> |
|
78 |
/// <returns>A DbCommand object for the specified Stored Procedure.</returns> |
|
79 |
public DbCommand GetStoredProcedureCommand(string storedProcName) |
|
80 |
{ |
|
81 |
if (this.Connection.State != ConnectionState.Open) |
|
82 |
this.Connection.Open(); |
|
83 | ||
84 |
DbCommand cmd = this.Connection.CreateCommand(); |
|
85 |
cmd.CommandType = CommandType.StoredProcedure; |
|
86 |
cmd.CommandText = storedProcName; |
|
87 |
return cmd; |
|
88 |
} |
|
89 | ||
90 |
#region : Parameters : |
|
91 | ||
92 |
/// <summary>Adds an input parameter to the given <see cref="DbCommand"/>.</summary> |
|
93 |
/// <param name="cmd">The command object the parameter should be added to.</param> |
|
94 |
/// <param name="paramName">The identifier of the parameter.</param> |
|
95 |
/// <param name="paramType">The type of the parameter.</param> |
|
96 |
/// <param name="value">The value of the parameter.</param> |
|
97 |
/// <returns>The <see cref="DbParameter"/> that was created.</returns> |
|
98 |
public DbParameter AddInParameter(DbCommand cmd, string paramName, DbType paramType, object value) |
|
99 |
{ |
|
100 |
return AddParameter(cmd, paramName, paramType, ParameterDirection.Input, value); |
|
101 |
} |
|
102 | ||
103 |
/// <summary>Adds an input parameter to the given <see cref="DbCommand"/>.</summary> |
|
104 |
/// <param name="cmd">The command object the parameter should be added to.</param> |
|
105 |
/// <param name="paramName">The identifier of the parameter.</param> |
|
106 |
/// <param name="paramType">The type of the parameter.</param> |
|
107 |
/// <param name="size">The maximum size in bytes, of the data table column to be affected.</param> |
|
108 |
/// <param name="value">The value of the parameter.</param> |
|
109 |
/// <returns>The <see cref="DbParameter"/> that was created.</returns> |
|
110 |
public DbParameter AddInParameter(DbCommand cmd, string paramName, DbType paramType, int size, object value) |
|
111 |
{ |
|
112 |
DbParameter param = AddInParameter(cmd, paramName, paramType, value); |
|
113 |
param.Size = size; |
|
114 |
cmd.Parameters.Add(param); |
|
115 |
return param; |
|
116 |
} |
|
117 | ||
118 |
/// <summary>Adds the out parameter to the given <see cref="DbCommand"/></summary> |
|
119 |
/// <param name="cmd">The command object the parameter should be added to.</param> |
|
120 |
/// <param name="paramName">The identifier of the parameter.</param> |
|
121 |
/// <param name="paramType">The type of the parameter.</param> |
|
122 |
/// <param name="value">The value of the parameter.</param> |
|
123 |
/// <returns>The <see cref="DbParameter"/> that was created.</returns> |
|
124 |
public DbParameter AddOutParameter(DbCommand cmd, string paramName, DbType paramType, object value) |
|
125 |
{ |
|
126 |
return AddParameter(cmd, paramName, paramType, ParameterDirection.Output, value); |
|
127 |
} |
|
128 | ||
129 |
/// <summary>Adds a parameter to the given <see cref="DbCommand"/>.</summary> |
|
130 |
/// <param name="cmd">The command object the parameter should be added to.</param> |
|
131 |
/// <param name="paramName">The identifier of the parameter.</param> |
|
132 |
/// <param name="paramType">The type of the parameter.</param> |
|
133 |
/// <param name="direction"><see cref="ParameterDirection"/> of the parameter.</param> |
|
134 |
/// <param name="value">The value of the parameter.</param> |
|
135 |
/// <returns>The <see cref="DbParameter"/> that was created.</returns> |
|
136 |
public DbParameter AddParameter(DbCommand cmd, string paramName, |
|
137 |
DbType paramType, |
|
138 |
ParameterDirection direction, |
|
139 |
object value) |
|
140 |
{ |
|
141 |
DbParameter param = cmd.CreateParameter(); |
|
142 |
param.DbType = paramType; |
|
143 |
param.ParameterName = paramName; |
|
144 |
param.Value = value; |
|
145 |
param.Direction = direction; |
|
146 |
cmd.Parameters.Add(param); |
|
147 |
return param; |
|
148 |
} |
|
149 | ||
150 |
/// <summary>Adds a parameter to the given <see cref="DbCommand"/>.</summary> |
|
151 |
/// <param name="cmd">The command object the parameter should be added to.</param> |
|
152 |
/// <param name="paramName">The identifier of the parameter.</param> |
|
153 |
/// <param name="paramType">The type of the parameter.</param> |
|
154 |
/// <param name="direction"><see cref="ParameterDirection"/> of the parameter.</param> |
|
155 |
/// <param name="size">The maximum size in bytes, of the data table column to be affected.</param> |
|
156 |
/// <param name="value">The value of the parameter.</param> |
|
157 |
/// <returns>The <see cref="DbParameter"/> that was created.</returns> |
|
158 |
public DbParameter AddParameter(DbCommand cmd, string paramName, |
|
159 |
DbType paramType, |
|
160 |
ParameterDirection direction, |
|
161 |
int size, |
|
162 |
object value) |
|
163 |
{ |
|
164 |
DbParameter param = AddParameter(cmd, paramName, paramType, direction, value); |
|
165 |
param.Size = size; |
|
166 |
return param; |
|
167 |
} |
|
168 | ||
169 |
#endregion |
|
170 | ||
171 |
#region : Executes : |
|
172 | ||
173 |
/// <summary>Executes the specified command against the current connection.</summary> |
|
174 |
/// <param name="cmd">The command to be executed.</param> |
|
175 |
/// <returns>Result returned by the database engine.</returns> |
|
176 |
public int ExecuteNonQuery(DbCommand cmd) |
|
177 |
{ |
|
178 |
if (this.Connection.State != ConnectionState.Open) |
|
179 |
this.Connection.Open(); |
|
180 | ||
181 |
return cmd.ExecuteNonQuery(); |
|
182 |
} |
|
183 | ||
184 |
public int ExecuteNonQuery(string sSql) |
|
185 |
{ |
|
186 |
if (this.Connection.State != ConnectionState.Open) |
|
187 |
this.Connection.Open(); |
|
188 | ||
189 |
return GetSqlStringCommand(sSql).ExecuteNonQuery(); |
|
190 |
} |
|
191 | ||
192 |
/// <summary>Executes the specified command against the current connection.</summary> |
|
193 |
/// <param name="cmd">The command to be executed.</param> |
|
194 |
/// <param name="txn">The database transaction inside which the command should be executed.</param> |
|
195 |
/// <returns>Result returned by the database engine.</returns> |
|
196 |
public int ExecuteNonQuery(DbCommand cmd, DbTransaction txn) |
|
197 |
{ |
|
198 |
if (this.Connection.State != ConnectionState.Open) |
|
199 |
this.Connection.Open(); |
|
200 | ||
201 |
cmd.Transaction = txn; |
|
202 |
return cmd.ExecuteNonQuery(); |
|
203 |
} |
|
204 | ||
205 |
/// <summary>Executes the specified command against the current connection.</summary> |
|
206 |
/// <param name="cmd">The command to be executed.</param> |
|
207 |
/// <returns>Result returned by the database engine.</returns> |
|
208 |
public DbDataReader ExecuteReader(DbCommand cmd) |
|
209 |
{ |
|
210 |
if (this.Connection.State != ConnectionState.Open) |
|
211 |
this.Connection.Open(); |
|
212 | ||
213 |
return cmd.ExecuteReader(); |
|
214 |
} |
|
215 | ||
216 |
/// <summary>Executes the specified command against the current connection.</summary> |
|
217 |
/// <param name="cmd">The command to be executed.</param> |
|
218 |
/// <param name="behavior">One of the <see cref="System.Data.CommandBehavior"/> values.</param> |
|
219 |
/// <returns>Result returned by the database engine.</returns> |
|
220 |
public DbDataReader ExecuteReader(DbCommand cmd, CommandBehavior behavior) |
|
221 |
{ |
|
222 |
if (this.Connection.State != ConnectionState.Open) |
|
223 |
this.Connection.Open(); |
|
224 | ||
225 |
return cmd.ExecuteReader(behavior); |
|
226 |
} |
|
227 | ||
228 |
/// <summary>Executes the specified command against the current connection.</summary> |
|
229 |
/// <param name="cmd">The command to be executed.</param> |
|
230 |
/// <returns>Result returned by the database engine.</returns> |
|
231 |
public T ExecuteScalar<T>(DbCommand cmd, T defaultValue) |
|
232 |
{ |
|
233 |
if (this.Connection.State != ConnectionState.Open) |
|
234 |
this.Connection.Open(); |
|
235 | ||
236 |
object retVal = cmd.ExecuteScalar(); |
|
237 |
if (null == retVal || DBNull.Value == retVal) |
|
238 |
return defaultValue; |
|
239 |
else |
|
240 |
return (T)retVal; |
|
241 |
} |
|
242 | ||
243 |
/// <summary>Executes the specified command against the current connection.</summary> |
|
244 |
/// <param name="cmd">The command to be executed.</param> |
|
245 |
/// <returns>Result returned by the database engine.</returns> |
|
246 |
public DataSet ExecuteDataSet(DbCommand cmd, DbTransaction txn = null) |
|
247 |
{ |
|
248 |
ADAPTER_TYPE adapter = new ADAPTER_TYPE(); |
|
249 |
if (null != txn) cmd.Transaction = txn; |
|
250 |
adapter.SelectCommand = (COMMAND_TYPE)cmd; |
|
251 | ||
252 |
DataSet retVal = new DataSet() |
|
253 |
{ |
|
254 |
Locale = System.Globalization.CultureInfo.InvariantCulture |
|
255 |
}; |
|
256 |
adapter.Fill(retVal); |
|
257 |
return retVal; |
|
258 |
} |
|
259 | ||
260 |
#endregion |
|
261 | ||
262 |
#endregion |
|
263 | ||
264 |
/// <summary>Begins a transaction.</summary> |
|
265 |
/// <returns>Created transaction.</returns> |
|
266 |
public DbTransaction BeginTransaction() |
|
267 |
{ |
|
268 |
if (this.Connection.State != ConnectionState.Open) |
|
269 |
this.Connection.Open(); |
|
270 |
return Connection.BeginTransaction(); |
|
271 |
} |
|
272 | ||
273 |
#region : Consturction / Destruction : |
|
274 | ||
275 |
/// <summary>Disposes the resources associated with the current database connection.</summary> |
|
276 |
~AbstractDatabase() |
|
277 |
{ |
|
278 |
Dispose(); |
|
279 |
} |
|
280 | ||
281 |
#region IDisposable Members |
|
282 | ||
283 |
/// <summary>Disposes the resources associated with the current database connection.</summary> |
|
284 |
public void Dispose() |
|
285 |
{ |
|
286 |
if (null != internal_currentConnection) |
|
287 |
{ |
|
288 |
internal_currentConnection.Dispose(); |
|
289 |
internal_currentConnection = null; |
|
290 |
} |
|
291 |
} |
|
292 | ||
293 |
#endregion |
|
294 | ||
295 |
#endregion |
|
296 |
} |
|
297 |
} |
KCOM_Backup_2019.09.26_03.36.14/App.xaml | ||
---|---|---|
1 |
<Application |
|
2 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|
3 |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|
4 |
xmlns:local="clr-namespace:KCOM" |
|
5 |
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="KCOM.App" |
|
6 |
StartupUri="MainWindow.xaml"> |
|
7 |
<Application.Resources> |
|
8 |
<ResourceDictionary> |
|
9 |
<ResourceDictionary.MergedDictionaries> |
|
10 |
<ResourceDictionary Source="Resources\Theme_Color.xaml"/> |
|
11 |
<ResourceDictionary/> |
|
12 |
<ResourceDictionary Source="Resources\DecodeImageTemplate.xaml"/> |
|
13 |
<ResourceDictionary Source="Resources\Theme_CustomControl.xaml"/> |
|
14 |
<ResourceDictionary Source="Assets\RadGridViewStyleResourceDictionary.xaml"/> |
|
15 |
<ResourceDictionary Source="Messenger\StyleDictionary.xaml"/> |
|
16 |
<ResourceDictionary Source="/MarkupToPDF;component/themes/generic.xaml"/> |
|
17 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/System.Windows.xaml"/> |
|
18 |
<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/Telerik.Windows.Controls.xaml"/> |
|
19 |
<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/Telerik.Windows.Controls.Input.xaml"/> |
|
20 |
<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/Telerik.Windows.Controls.RibbonView.xaml"/> |
|
21 |
<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/Telerik.Windows.Controls.Docking.xaml"/>--> |
|
22 | ||
23 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.Office2016;component/Themes/Telerik.Windows.Controls.Docking.xaml"/>--> |
|
24 |
<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/System.Windows.xaml"/> |
|
25 |
<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.xaml"/> |
|
26 |
<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Input.xaml"/> |
|
27 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.RibbonView.xaml"/>--> |
|
28 |
<!--<ResourceDictionary Source="/Telerik.Windows.Themes.VisualStudio2013;component/Themes/Telerik.Windows.Controls.Docking.xaml"/>--> |
|
29 |
</ResourceDictionary.MergedDictionaries> |
|
30 |
</ResourceDictionary> |
|
31 |
</Application.Resources> |
|
32 |
</Application> |
KCOM_Backup_2019.09.26_03.36.14/App.xaml.cs | ||
---|---|---|
1 |
|
|
2 |
using KCOM.Common; |
|
3 |
using KCOM.ServiceDeepView; |
|
4 |
using System; |
|
5 |
using System.Collections.Generic; |
|
6 |
using System.ComponentModel; |
|
7 |
using System.Configuration; |
|
8 |
using System.Data; |
|
9 |
using System.Diagnostics; |
|
10 |
using System.IO; |
|
11 |
using System.Linq; |
|
12 |
using System.Net; |
|
13 |
using System.Reflection; |
|
14 |
using System.Runtime.CompilerServices; |
|
15 |
using System.ServiceModel; |
|
16 |
using System.Windows; |
|
17 |
using System.Xml; |
|
18 |
using log4net; |
|
19 |
using System.Text; |
|
20 |
using System.Runtime.InteropServices; |
|
21 |
using KCOM.Views; |
|
22 |
using System.Threading.Tasks; |
|
23 | ||
24 |
[assembly: log4net.Config.XmlConfigurator(Watch = true)] |
|
25 |
namespace KCOM |
|
26 |
{ |
|
27 |
public class OpenProperties |
|
28 |
{ |
|
29 |
public string DocumentItemID { get; set; } |
|
30 |
public bool bPartner { get; set; } |
|
31 |
public bool CreateFinalPDFPermission { get; set; } |
|
32 |
public bool NewCommentPermission { get; set; } |
|
33 |
public string ProjectNO { get; set; } |
|
34 |
public string UserID { get; set; } |
|
35 |
public int Mode { get; set; } |
|
36 | ||
37 |
/// <summary> |
|
38 |
/// pemss에서 전달되는 ID |
|
39 |
/// </summary> |
|
40 |
public string pId { get; set; } |
|
41 | ||
42 |
/// <summary> |
|
43 |
/// pemss에서 전달되는 ID |
|
44 |
/// </summary> |
|
45 |
public string uId { get; set; } |
|
46 | ||
47 |
public string cId { get; set; } |
|
48 |
} |
|
49 |
/// <summary> |
|
50 |
/// App.xaml에 대한 상호 작용 논리 |
|
51 |
/// </summary> |
|
52 |
public partial class App : Application |
|
53 |
{ |
|
54 |
public static bool IsDesignMode |
|
55 |
{ |
|
56 |
get |
|
57 |
{ |
|
58 |
return DesignerProperties.GetIsInDesignMode(new DependencyObject()); |
|
59 |
} |
|
60 |
private set { } |
|
61 |
} |
|
62 | ||
63 |
public static BasicHttpBinding _binding; |
|
64 |
public static EndpointAddress _EndPoint; |
|
65 |
public static EndpointAddress _PemssEndPoint; |
|
66 |
public static EndpointAddress _EndPoint_SaveLoad; |
|
67 |
public static EndpointAddress _EndPoint_Symbol; |
|
68 |
public static string UserID; |
|
69 |
public static string UserName; |
|
70 |
public static string UserIP; |
|
71 |
public static IKCOM.ViewInfo ViewInfo; |
|
72 |
public static IKCOM.PEMSSInfo PEMSSInfo; |
|
73 |
public static string urlHost; |
|
74 |
public static string urlPort; |
|
75 |
public static string urlHost_DB; |
|
76 |
public static string urlPort_DB; |
|
77 |
public static string Custom_ViewInfoId; |
|
78 |
public static bool ParameterMode = false; |
|
79 |
public static bool isExternal = false; |
|
80 | ||
81 |
/// <summary> |
|
82 |
/// logger |
|
83 |
/// </summary> |
|
84 |
public static ILog DBLogger = null; |
|
85 |
public static ILog FileLogger = null; |
|
86 | ||
87 |
/// <summary> |
|
88 |
/// Application Data Folder |
|
89 |
/// </summary> |
|
90 |
public static string AppDataFolder |
|
91 |
{ |
|
92 |
get |
|
93 |
{ |
|
94 |
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MARKUS"); |
|
95 |
} |
|
96 |
} |
|
97 | ||
98 | ||
99 |
public static RestSharp.RestClient BaseClient { get; set; } |
|
100 |
public static IKCOM.KCOM_SystemInfo SystemInfo { get; set; } |
|
101 | ||
102 | ||
103 |
private static OpenProperties ParamDecoding(string DecodingText, System.Text.Encoding oEncoding = null) |
|
104 |
{ |
|
105 |
if (oEncoding == null) |
|
106 |
oEncoding = System.Text.Encoding.UTF8; |
|
107 | ||
108 |
byte[] byteArray = Convert.FromBase64String(DecodingText); |
|
109 | ||
110 |
string jsonBack = oEncoding.GetString(byteArray); |
|
111 | ||
112 |
return Newtonsoft.Json.JsonConvert.DeserializeObject<OpenProperties>(jsonBack); |
|
113 |
} |
|
114 | ||
115 |
private string versionPath = null; |
|
116 |
//public SplashScreen splash = new SplashScreen("splash.png"); |
|
117 |
public static SplashScreenWindow splashScreen = new SplashScreenWindow(); |
|
118 | ||
119 |
public App() |
|
120 |
{ |
|
121 |
Telerik.Windows.Controls.StyleManager.ApplicationTheme = new Telerik.Windows.Controls.VisualStudio2013Theme(); |
|
122 |
} |
|
123 | ||
124 |
protected override async void OnStartup(StartupEventArgs e) |
|
125 |
{ |
|
126 | ||
127 |
try |
|
128 |
{ |
|
129 | ||
130 | ||
131 |
splashScreen.Show(); |
|
132 | ||
133 |
/// create log database and table |
|
134 |
using (IAbstractDatabase database = new AppSQLiteDatabase() { FilePath = Path.Combine(AppDataFolder, "log4net.db") }) |
|
135 |
{ |
|
136 |
string sSql = "CREATE TABLE IF NOT EXISTS Log (LogId INTEGER PRIMARY KEY,Date DATETIME NOT NULL,Level VARCHAR(50) NOT NULL,Logger VARCHAR(255) NOT NULL,Message TEXT DEFAULT NULL,StackTrace TEXT DEFAULT NULL);"; |
|
137 |
database.ExecuteNonQuery(sSql); |
|
138 |
} |
|
139 |
/// up to here |
|
140 |
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); |
|
141 |
log4net.GlobalContext.Properties["LogDBFilePath"] = Path.Combine(AppDataFolder, "log4net.db"); |
|
142 |
log4net.GlobalContext.Properties["LogFilePath"] = Path.Combine(AppDataFolder, "Log", "log4net.log"); |
|
143 |
App.DBLogger = LogManager.GetLogger("DBLogger"); |
|
144 |
App.FileLogger = LogManager.GetLogger("EventLogger"); |
|
145 | ||
146 |
#region // DNS 체크 |
|
147 | ||
148 |
string localdomain = CommonLib.Common.GetConfigString("HOST_DOMAIN", "DOMAIN", ""); |
|
149 | ||
150 |
var hostEntry = CommonLib.DNSHelper.GetHostEntryTask(); |
|
151 | ||
152 |
if (hostEntry == null) |
|
153 |
{ |
|
154 |
System.Diagnostics.Debug.WriteLine("(hostEntry == null"); |
|
155 |
App.FileLogger.Fatal("hostEntry == null"); |
|
156 |
isExternal = true; |
|
157 |
} |
|
158 |
else if (!hostEntry.HostName.EndsWith(localdomain)) |
|
159 |
{ |
|
160 |
// 외부 사용자 |
|
161 |
App.FileLogger.Fatal("hostEntry != localdomain :" + hostEntry.HostName); |
|
162 |
isExternal = true; |
|
163 |
} |
|
164 |
#endregion |
|
165 |
//splash.Show(false, false); |
|
166 | ||
167 |
if (e.Args.Count() > 0) |
|
168 |
{ |
|
169 |
var result = ParamDecoding(e.Args[0].Replace(@"kcom://", "").Replace(@"/", "")); |
|
170 |
App.ViewInfo = new IKCOM.ViewInfo |
|
171 |
{ |
|
172 |
DocumentItemID = result.DocumentItemID, |
|
173 |
EnsembleID = result.DocumentItemID, |
|
174 |
//DocumentItemID = "10001", |
|
175 |
bPartner = result.bPartner, |
|
176 |
CreateFinalPDFPermission = result.CreateFinalPDFPermission, |
|
177 |
NewCommentPermission = result.NewCommentPermission, |
|
178 |
ProjectNO = result.ProjectNO, |
|
179 |
UserID = result.UserID, |
|
180 |
//UserID = "H2009115", |
|
181 |
//Mode = 0 , 1 , 2 |
|
182 |
}; |
|
183 | ||
184 |
App.PEMSSInfo = new IKCOM.PEMSSInfo |
|
185 |
{ |
|
186 |
UserID = result.uId, |
|
187 |
CommentID = result.cId |
|
188 |
}; |
|
189 | ||
190 |
ParameterMode = true; |
|
191 |
} |
|
192 |
else |
|
193 |
{ |
|
194 |
string[] strArg = Environment.GetCommandLineArgs(); |
|
195 |
if (strArg.Length > 1) |
|
196 |
{ |
|
197 |
//label1.Text = strArg[1]; |
|
198 | ||
199 |
var result = ParamDecoding(strArg[1].Replace(@"kcom://", "").Replace(@"/", "")); |
|
200 |
App.ViewInfo = new IKCOM.ViewInfo |
|
201 |
{ |
|
202 |
DocumentItemID = result.DocumentItemID, |
|
203 |
EnsembleID = result.DocumentItemID, |
|
204 |
//DocumentItemID = "10001", |
|
205 |
bPartner = result.bPartner, |
|
206 |
CreateFinalPDFPermission = result.CreateFinalPDFPermission, |
|
207 |
NewCommentPermission = result.NewCommentPermission, |
|
208 |
ProjectNO = result.ProjectNO, |
|
209 |
UserID = result.UserID, |
|
210 |
//UserID = "H2009115", |
|
211 |
//Mode = 0 , 1 , 2 |
|
212 |
}; |
|
213 | ||
214 |
App.PEMSSInfo = new IKCOM.PEMSSInfo |
|
215 |
{ |
|
216 |
UserID = result.uId |
|
217 |
}; |
|
218 | ||
219 |
ParameterMode = true; |
|
220 |
} |
|
221 |
} |
|
222 | ||
223 |
//App.ViewInfo.CreateFinalPDFPermission = false; |
|
224 |
//App.ViewInfo.NewCommentPermission = false; |
|
225 |
//GetQueryStringParameters(); |
|
226 |
_binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly); |
|
227 |
_binding.MaxBufferSize = 2147483647; |
|
228 |
_binding.MaxReceivedMessageSize = 2147483647; |
|
229 |
_binding.OpenTimeout = new TimeSpan(0, 1, 0); |
|
230 |
_binding.ReceiveTimeout = new TimeSpan(0, 10, 0); |
|
231 |
_binding.CloseTimeout = new TimeSpan(0, 5, 0); |
|
232 |
_binding.SendTimeout = new TimeSpan(0, 5, 0); |
|
233 |
_binding.TextEncoding = System.Text.Encoding.UTF8; |
|
234 |
_binding.TransferMode = TransferMode.Buffered; |
|
235 |
//Support.SetLicense(); |
|
236 | ||
237 |
string sBaseServiceURL = string.Empty;//CommonLib.Common.GetConfigString("BaseClientAddress", "URL", ""); |
|
238 | ||
239 |
#if DEBUG |
|
240 |
//sBaseServiceURL = CommonLib.Common.GetConfigString("BaseClientAddress", "URL", "", isExternal); |
|
241 |
System.Diagnostics.Debug.WriteLine("sBaseServiceURL"); |
|
242 |
sBaseServiceURL = CommonLib.Common.GetConfigString("Debug_BaseClientAddress", "URL", "", isExternal); |
|
243 |
#else |
|
244 |
sBaseServiceURL = CommonLib.Common.GetConfigString("BaseClientAddress", "URL", "", isExternal); |
|
245 |
#endif |
|
246 | ||
247 |
_EndPoint = new EndpointAddress(string.Format("{0}/ServiceDeepView.svc", sBaseServiceURL)); |
|
248 | ||
249 |
#if DEBUG |
|
250 |
_PemssEndPoint = new EndpointAddress(string.Format("{0}/PemssService.svc", "http://localhost:13009")); |
|
251 |
#else |
|
252 |
_PemssEndPoint = new EndpointAddress(string.Format("{0}/PemssService.svc", sBaseServiceURL)); |
|
253 |
#endif |
|
254 | ||
255 |
await SplashScreenAsnyc(); |
|
256 |
base.OnStartup(e); |
|
257 | ||
258 |
//this.MainWindow = new MainWindow(); |
|
259 | ||
260 |
} |
|
261 |
catch (Exception ex) |
|
262 |
{ |
|
263 |
MessageBox.Show("Err:" + ex.ToString()); |
|
264 |
} |
|
265 |
finally |
|
266 |
{ |
|
267 |
await SplashScreenAsnyc(); |
|
268 |
} |
|
269 |
} |
|
270 | ||
271 |
private async Task<bool> SplashScreenAsnyc() |
|
272 |
{ |
|
273 |
int value = 100 / ISplashMessage.SplashMessageCnt; |
|
274 | ||
275 |
for (int i = 1; i < ISplashMessage.SplashMessageCnt; i++) |
|
276 |
{ |
|
277 |
System.Threading.Thread.Sleep(3); |
|
278 |
await splashScreen.Dispatcher.InvokeAsync(() => splashScreen.Progress = i * value); |
|
279 |
} |
|
280 | ||
281 |
splashScreen.Close(); |
|
282 | ||
283 |
return true; |
|
284 |
} |
|
285 | ||
286 |
public static void splashString(string text) |
|
287 |
{ |
|
288 |
Task.Factory.StartNew(() => |
|
289 |
{ |
|
290 |
splashScreen.Dispatcher.Invoke(() => splashScreen.SplashText = text); |
내보내기 Unified diff