Changeset 9961

Show
Ignore:
Timestamp:
04/20/08 11:31:49 (6 years ago)
Author:
coma2n
Message:

platform/silverlight/Todo/trunk: リファクタリング

Location:
platform/silverlight/Todo/trunk/src
Files:
2 added
11 modified

Legend:

Unmodified
Added
Removed
  • platform/silverlight/Todo/trunk/src/Todo/App.xaml

    r9642 r9961  
    66        <Style x:Key="button" TargetType="Button"> 
    77            <Setter Property="Width" Value="70" /> 
    8             <Setter Property="Height" Value="28" /> 
    98            <Setter Property="Margin" Value="0,0,6,0" /> 
    10             <Setter Property="Template"> 
    11                 <Setter.Value> 
    12                     <ControlTemplate TargetType="Button"> 
    13                         <Border Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" CornerRadius="12" 
    14                                 BorderBrush="Black" BorderThickness="1" Cursor="Hand"> 
    15                             <Border.Background> 
    16                                 <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> 
    17                                     <GradientStop Color="Silver" Offset="0" /> 
    18                                     <GradientStop Color="Black" Offset="0.6" /> 
    19                                     <GradientStop Color="White" Offset="1" /> 
    20                                 </LinearGradientBrush> 
    21                             </Border.Background> 
    22                              
    23                             <ContentPresenter Content="{TemplateBinding Content}" Foreground="White" 
    24                                               HorizontalAlignment="Center" VerticalAlignment="Center" /> 
    25                         </Border> 
    26                     </ControlTemplate> 
    27                 </Setter.Value> 
    28             </Setter> 
    299        </Style> 
    30  
     10         
    3111        <Style x:Key="label" TargetType="TextBlock"> 
    3212            <Setter Property="FontSize" Value="12" /> 
  • platform/silverlight/Todo/trunk/src/Todo/App.xaml.cs

    r9625 r9961  
    3030 
    3131namespace Todo { 
     32        /// <summary> 
     33        ///  
     34        /// </summary> 
    3235    public partial class App : Application { 
    3336 
     
    4851 
    4952        private void Application_Startup(object sender, StartupEventArgs e) { 
    50             this.RootVisual = new Page { 
    51                 AppBase = e.InitParams["appBase"] 
    52             }; 
     53                        this.RootVisual = new Page(); 
    5354        } 
    5455 
  • platform/silverlight/Todo/trunk/src/Todo/Controls/ItemListBox.xaml

    r9712 r9961  
    44 
    55    <UserControl.Resources> 
    6         <ToolTip x:Key="tooltipTemplate"> 
     6        <ToolTip x:Name="tooltipTemplate"> 
    77            <ToolTip.Template> 
    88                <ControlTemplate TargetType="ToolTip"> 
  • platform/silverlight/Todo/trunk/src/Todo/Controls/ItemListBox.xaml.cs

    r9712 r9961  
    4545        /// </summary> 
    4646        private DateTime lastClickTime = DateTime.MinValue; 
    47  
    48         /// <summary> 
    49         /// ToolTipのテンプレート 
    50         /// </summary> 
    51         private readonly ToolTip tooltipTemplate; 
    5247 
    5348        #endregion 
     
    130125        public ItemListBox() { 
    131126            InitializeComponent(); 
    132  
    133             tooltipTemplate = (ToolTip)this.Resources["tooltipTemplate"]; 
    134127        } 
    135128 
  • platform/silverlight/Todo/trunk/src/Todo/Controls/NumericUpDown.xaml.cs

    r9625 r9961  
    2626using System.Windows; 
    2727using System.Windows.Controls; 
     28using System.Diagnostics; 
    2829 
    2930#endregion 
  • platform/silverlight/Todo/trunk/src/Todo/Page.xaml

    r9712 r9961  
    2222 
    2323            <StackPanel Margin="0,0,0,6"  Orientation="Horizontal"> 
    24                 <Button x:Name="addButton" Content="Add" 
    25                     Style="{StaticResource button}" Click="addButton_Click" /> 
    26                 <Button x:Name="delButton" Content="Delete" 
     24                <ctrl:CoolButton x:Name="addButton" Text="Add" 
     25                                 Style="{StaticResource button}" Click="addButton_Click" /> 
     26                 
     27                <ctrl:CoolButton x:Name="delButton" Text="Delete" 
    2728                    Style="{StaticResource button}" Click="delButton_Click" /> 
    2829            </StackPanel> 
  • platform/silverlight/Todo/trunk/src/Todo/Page.xaml.cs

    r9712 r9961  
    3333using System.Windows.Controls; 
    3434using System.Collections.Generic; 
     35using System.Globalization; 
    3536using System.Diagnostics; 
    3637 
    3738using Todo.Views; 
    3839using Todo.Controls; 
    39 using System.Globalization; 
    4040 
    4141#endregion 
     
    6666        public Page() { 
    6767            InitializeComponent(); 
     68 
     69                        var rootUrl = HtmlPage.Document.DocumentUri.ToString(); 
     70 
     71                        var pos = rootUrl.LastIndexOf('/'); 
     72                        // ケツから/までのURLを取得する。 
     73                        // http://localhost:1100/ 
     74                        // http://localhost:1100/Default.aspx 
     75                        // ↑どちらの場合でも欲しいのは「http://localhost:1100/」 
     76                        if(pos != -1) rootUrl = rootUrl.Substring(0, pos + 1); 
     77 
     78                        AppBase = rootUrl; 
    6879        } 
    6980 
     
    202213        #endregion 
    203214 
    204         private void UserControl_Loaded(object sender, RoutedEventArgs e) { LoadItems(); } 
    205         private void addButton_Click(object sender, RoutedEventArgs e) { 
    206             addItemView.Mode = EditMode.Add; 
    207             addItemView.Item = new Item(); 
    208             addItemView.Show(); 
    209         } 
    210  
    211         private void delButton_Click(object sender, RoutedEventArgs e) { 
    212             var selItem = itemList.SelectedItem; 
    213  
    214             if(selItem != null) { 
    215                 if(HtmlPage.Window.Confirm("選択したアイテムを削除しますか?")) { 
    216                     DeleteItem(selItem.Id, () => { 
    217                         PrintMessage("アイテムを削除しました。"); 
    218  
    219                         LoadItems(() => PrintMessage("アイテムの一覧を読み込みました。")); 
    220                     }); 
    221                 } 
    222             } 
    223         } 
    224  
    225         private void itemList_ItemCompleting(object sender, ItemCompletingEventArgs e) { 
    226             SetItem(e.Id, e.Complete, 
    227                 () => PrintMessage(e.Complete ? "アイテムを完了しました。" : "アイテムを未完了にしました。") 
    228             ); 
    229         } 
    230  
    231         private void itemList_ItemDoubleClick(object sender, RoutedEventArgs e) { 
    232             var item = itemList.SelectedItem; 
    233  
    234             addItemView.Mode = EditMode.Update; 
    235             addItemView.Item = item; 
    236             addItemView.Show(); 
    237         } 
    238  
    239         private void addItemView_ItemAdd(object sender, RoutedEventArgs e) { 
    240             var item = addItemView.Item; 
    241  
    242             AddItem( 
    243                 item.Title, item.Description, item.Date, item.Priority, 
    244                 () => { 
    245                     PrintMessage("アイテムを追加しました。"); 
    246  
    247                     LoadItems(() => PrintMessage("アイテムの一覧を読み込みました。")); 
    248                 } 
    249             ); 
    250         } 
    251  
    252         private void addItemView_ItemUpdate(object sender, RoutedEventArgs e) { 
    253             var item = addItemView.Item; 
    254  
    255             UpdateItem(item, () => { 
    256                 PrintMessage("アイテムを更新しました。"); 
    257  
    258                 LoadItems(() => PrintMessage("アイテムの一覧を読み込みました。")); 
    259             }); 
    260         } 
     215                #region handlers 
     216 
     217                private void UserControl_Loaded(object sender, RoutedEventArgs e) { LoadItems(); } 
     218 
     219                private void addButton_Click(object sender, RoutedEventArgs e) { 
     220                        addItemView.Mode = EditMode.Add; 
     221                        addItemView.Item = new Item(); 
     222                        addItemView.Show(); 
     223                } 
     224 
     225                private void delButton_Click(object sender, RoutedEventArgs e) { 
     226                        var selItem = itemList.SelectedItem; 
     227 
     228                        if(selItem != null) { 
     229                                if(HtmlPage.Window.Confirm("選択したアイテムを削除しますか?")) { 
     230                                        DeleteItem(selItem.Id, () => { 
     231                                                PrintMessage("アイテムを削除しました。"); 
     232 
     233                                                LoadItems(() => PrintMessage("アイテムの一覧を読み込みました。")); 
     234                                        }); 
     235                                } 
     236                        } 
     237                } 
     238 
     239                private void itemList_ItemCompleting(object sender, ItemCompletingEventArgs e) { 
     240                        SetItem(e.Id, e.Complete, 
     241                                () => PrintMessage(e.Complete ? "アイテムを完了しました。" : "アイテムを未完了にしました。") 
     242                        ); 
     243                } 
     244 
     245                private void itemList_ItemDoubleClick(object sender, RoutedEventArgs e) { 
     246                        var item = itemList.SelectedItem; 
     247 
     248                        addItemView.Mode = EditMode.Update; 
     249                        addItemView.Item = item; 
     250                        addItemView.Show(); 
     251                } 
     252 
     253                private void addItemView_ItemAdd(object sender, RoutedEventArgs e) { 
     254                        var item = addItemView.Item; 
     255 
     256                        AddItem( 
     257                                item.Title, item.Description, item.Date, item.Priority, 
     258                                () => { 
     259                                        PrintMessage("アイテムを追加しました。"); 
     260 
     261                                        LoadItems(() => PrintMessage("アイテムの一覧を読み込みました。")); 
     262                                } 
     263                        ); 
     264                } 
     265 
     266                private void addItemView_ItemUpdate(object sender, RoutedEventArgs e) { 
     267                        var item = addItemView.Item; 
     268 
     269                        UpdateItem(item, () => { 
     270                                PrintMessage("アイテムを更新しました。"); 
     271 
     272                                LoadItems(() => PrintMessage("アイテムの一覧を読み込みました。")); 
     273                        }); 
     274                } 
     275 
     276                #endregion 
    261277 
    262278    } 
     
    268284    /// </summary> 
    269285    static class HttpWebRequestExtension { 
    270  
    271         #region const 
    272  
    273         /// <summary> 
    274         /// 日付のフォーマットプロバイダー 
    275         /// </summary> 
    276         private static readonly DateTimeFormatInfo dtFormat = new CultureInfo("en-US").DateTimeFormat; 
    277  
    278         #endregion 
    279286 
    280287        #region methods 
     
    316323        private static string Convert(this object value) { 
    317324            if(value is DateTime) { 
    318                 return ((DateTime)value).ToString("yyyy-MM-ddTHH:mm:ss", dtFormat); 
     325                return ((DateTime)value).ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture); 
    319326            } 
    320327            return value != null ? value.ToString() : string.Empty; 
  • platform/silverlight/Todo/trunk/src/Todo/Todo.csproj

    r9625 r9961  
    6262      <DependentUpon>App.xaml</DependentUpon> 
    6363    </Compile> 
     64    <Compile Include="Controls\CoolButton.xaml.cs"> 
     65      <DependentUpon>CoolButton.xaml</DependentUpon> 
     66    </Compile> 
    6467    <Compile Include="Controls\ItemListBox.xaml.cs"> 
    6568      <DependentUpon>ItemListBox.xaml</DependentUpon> 
     
    103106    </SilverlightPage> 
    104107  </ItemGroup> 
     108  <ItemGroup> 
     109    <SilverlightPage Include="Controls\CoolButton.xaml"> 
     110      <Generator>MSBuild:CompileXaml</Generator> 
     111    </SilverlightPage> 
     112  </ItemGroup> 
    105113  <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v2.0\Microsoft.Silverlight.CSharp.targets" /> 
    106114  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.  
  • platform/silverlight/Todo/trunk/src/Todo/Views/AddItemView.xaml

    r9642 r9961  
    22    xmlns="http://schemas.microsoft.com/client/2007"  
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    4     xmlns:ctrl="clr-namespace:Todo.Controls"> 
     4    xmlns:ctrl="clr-namespace:Todo.Controls" 
     5    KeyDown="UserControl_KeyDown"> 
    56     
    67    <UserControl.Resources> 
    7         <Storyboard x:Key="titleErrorAnime"> 
     8        <Storyboard x:Name="titleErrorAnime"> 
    89            <DoubleAnimation From="0" To="2" Duration="0:0:0.5" RepeatBehavior="0:0:3" 
    910                             Storyboard.TargetName="titleError" Storyboard.TargetProperty="StrokeThickness" /> 
     
    3132                        <StackPanel> 
    3233                            <TextBlock Text="重要度" Style="{StaticResource label}" /> 
    33                             <ctrl:NumericUpDown x:Name="priorityInput" Height="20" Value="{Binding Priority, Mode=TwoWay}" Minimum="1" Maximum="5" /> 
     34                            <ctrl:NumericUpDown x:Name="priorityInput" Height="25" Value="{Binding Priority, Mode=TwoWay}" Minimum="1" Maximum="5" /> 
    3435                        </StackPanel> 
    3536                         
     
    5556                 
    5657                <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center"> 
    57                     <Button x:Name="addButton" Content="Add" 
     58                    <ctrl:CoolButton x:Name="addButton" Text="Add" 
    5859                            Style="{StaticResource button}" Click="addButton_Click" /> 
    5960                     
    60                     <Button x:Name="updateButton" Content="Update" 
     61                    <ctrl:CoolButton x:Name="updateButton" Text="Update" 
    6162                            Style="{StaticResource button}" Click="updateButton_Click" /> 
    6263                     
    63                     <Button x:Name="cancelButton" Content="Cancel" 
     64                    <ctrl:CoolButton x:Name="cancelButton" Text="Cancel" 
    6465                            Style="{StaticResource button}" Click="cancelButton_Click" /> 
    6566                </StackPanel> 
  • platform/silverlight/Todo/trunk/src/Todo/Views/AddItemView.xaml.cs

    r9642 r9961  
    2525using System; 
    2626using System.Windows; 
     27using System.Windows.Input; 
    2728using System.Windows.Browser; 
    2829using System.Windows.Controls; 
    2930using System.Diagnostics; 
    30 using System.Windows.Media.Animation; 
    3131 
    3232#endregion 
     
    3838    public partial class AddItemView : UserControl { 
    3939 
    40                 #region fields 
    41  
    42                 private Storyboard titleErrorAnime; 
    43  
    44                 #endregion 
    45  
    4640        #region properties 
    4741 
     
    120114        public AddItemView() { 
    121115            InitializeComponent(); 
    122  
    123                         titleErrorAnime = (Storyboard)this.Resources["titleErrorAnime"]; 
    124116        } 
    125117 
     
    174166        #endregion 
    175167 
    176         /// <summary> 
    177         /// [Add]ボタンがクリックされた時 
    178         /// </summary> 
    179         /// <param name="sender"></param> 
    180         /// <param name="e"></param> 
    181         private void addButton_Click(object sender, RoutedEventArgs e) { 
     168                #region handlers 
     169 
     170                /// <summary> 
     171                /// [Add]ボタンがクリックされた時 
     172                /// </summary> 
     173                /// <param name="sender"></param> 
     174                /// <param name="e"></param> 
     175                private void addButton_Click(object sender, RoutedEventArgs e) { 
    182176                        if(Validate()) { 
    183177                                OnItemAdd(new RoutedEventArgs { 
     
    186180                                Close(); 
    187181                        } 
    188         } 
    189  
    190         /// <summary> 
    191         /// [Update]ボタンがクリックされた時 
    192         /// </summary> 
    193         /// <param name="sender"></param> 
    194         /// <param name="e"></param> 
    195         private void updateButton_Click(object sender, RoutedEventArgs e) { 
     182                } 
     183 
     184                /// <summary> 
     185                /// [Update]ボタンがクリックされた時 
     186                /// </summary> 
     187                /// <param name="sender"></param> 
     188                /// <param name="e"></param> 
     189                private void updateButton_Click(object sender, RoutedEventArgs e) { 
    196190                        if(Validate()) { 
    197191                                OnItemUpdate(new RoutedEventArgs { 
     
    200194                                Close(); 
    201195                        } 
    202         } 
    203  
    204         /// <summary> 
    205         /// [Cancel]ボタンがクリックされた時 
    206         /// </summary> 
    207         /// <param name="sender"></param> 
    208         /// <param name="e"></param> 
    209         private void cancelButton_Click(object sender, RoutedEventArgs e) { 
    210             Close(); 
    211         } 
     196                } 
     197 
     198                /// <summary> 
     199                /// [Cancel]ボタンがクリックされた時 
     200                /// </summary> 
     201                /// <param name="sender"></param> 
     202                /// <param name="e"></param> 
     203                private void cancelButton_Click(object sender, RoutedEventArgs e) { 
     204                        Close(); 
     205                } 
     206 
     207                private void UserControl_KeyDown(object sender, KeyEventArgs e) { 
     208                        if(e.Key == Key.Escape) Close(); 
     209                } 
     210 
     211                #endregion 
    212212 
    213213    } 
  • platform/silverlight/Todo/trunk/src/Todo_Web/Views/Home/Index.aspx

    r9712 r9961  
    1313                        <asp:Silverlight ID="Silverlight1" runat="server" Version="2.0" 
    1414                                Height="100%" Width="100%" Source="~/ClientBin/Todo.xap" 
    15                                 InitParameters="appBase=http://:1100/" 
    1615                        /> 
    1716                </div>