OSDN Git Service

・うっとおしいデバッグ用のメッセージを削除。
[gikonavigoeson/gikonavi.git] / FavoriteAdd.pas
1 unit FavoriteAdd;
2
3 interface
4
5 uses
6         Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7         Dialogs, ComCtrls, StdCtrls, Favorite, ImgList, BoardGroup, NewFavoriteFolder;
8
9 type
10         TFavoriteAddDialog = class(TForm)
11     TitleLabel: TLabel;
12     NameLabel: TLabel;
13                 Label3: TLabel;
14     NameEdit: TEdit;
15                 CaptionEdit: TEdit;
16                 OKButton: TButton;
17                 CancelButton: TButton;
18                 NewFolderButton: TButton;
19                 FolderTreeView: TTreeView;
20                 Label4: TLabel;
21                 procedure FormCreate(Sender: TObject);
22                 procedure OKButtonClick(Sender: TObject);
23                 procedure CancelButtonClick(Sender: TObject);
24                 procedure NewFolderButtonClick(Sender: TObject);
25         private
26                 { Private \90é\8c¾ }
27                 FBoard: TBoard;
28                 FThreadItem: TThreadItem;
29 //              procedure PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
30                 function GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
31         public
32                 { Public \90é\8c¾ }
33                 procedure SetBoard(Board: TBoard);
34                 procedure SetThreadItem(ThreadItem: TThreadItem);
35         end;
36
37 var
38         FavoriteAddDialog: TFavoriteAddDialog;
39
40 implementation
41
42 uses Giko;
43
44 {$R *.dfm}
45
46 procedure TFavoriteAddDialog.FormCreate(Sender: TObject);
47 var
48         i: Integer;
49 begin
50         FolderTreeView.Items := FavoriteDM.TreeView.Items;
51
52         for i := FolderTreeView.Items.Count - 1 downto 0 do begin
53                 if not (TObject(FolderTreeView.Items[i].Data) is TFavoriteFolder) then
54                         FolderTreeView.Items[i].Delete;
55         end;
56
57         if FolderTreeView.Items.GetFirstNode <> nil then begin
58                 FolderTreeView.Items.GetFirstNode.Expanded := True;
59                 FolderTreeView.Items.GetFirstNode.Selected := True;
60         end;
61 {       Node := FolderTreeView.Items.AddChild(nil, GikoForm.Favorite.Root.Title);
62         Node.ImageIndex := 0;
63         Node.Data := GikoForm.Favorite.Root;
64         PrepareFavoriteTree(GikoForm.Favorite.Root, Node);
65         Node.Expanded := True;
66         Node.Selected := True;}
67 end;
68
69
70 {procedure TFavoriteAddDialog.PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
71 var
72         i: Integer;
73         ChildFavo: TFavoriteItem;
74         ChildNode: TTreeNode;
75 begin
76         for i := 0 to TFavoriteFolder(Favo).Count - 1 do begin
77
78                 ChildFavo := TFavoriteFolder(Favo).Items[i];
79                 if ChildFavo is TFavoriteFolder then begin
80                         ChildNode := FolderTreeView.Items.AddChild(Node, ChildFavo.Title);
81                         ChildNode.ImageIndex := 0;
82                         ChildNode.Data := ChildFavo;
83                         PrepareFavoriteTree(ChildFavo, ChildNode);
84                 end else if ChildFavo is TFavoriteBoardItem then begin
85                 end else if ChildFavo is TFavoriteThreadItem then begin
86                 end;
87         end;
88 end;}
89
90 procedure TFavoriteAddDialog.OKButtonClick(Sender: TObject);
91 var
92         i: Integer;
93         Node: TTreeNode;
94         FavoBoardItem: TFavoriteBoardItem;
95         FavoThreadItem: TFavoriteThreadItem;
96         FavNode: TTreeNode;
97 begin
98         if FolderTreeView.Selected = nil then
99                 Exit;
100     Node := nil;
101         for i := 0 to FolderTreeView.Items.Count - 1 do begin
102
103                 FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Data);
104                 if FavNode = nil then begin
105                         FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Parent.Data);
106                         if FavNode <> nil then
107                                 Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, FolderTreeView.Items[i].Text, FolderTreeView.Items[i].Data);
108                                 Node.ImageIndex := 14;
109                                 Node.SelectedIndex := 14;
110                 end;
111         end;
112
113
114         FavNode := GetGikoFavoriteNode(FolderTreeView.Selected.Data);
115         if FavNode <> nil then begin
116                 if FBoard <> nil then begin
117                         FavoBoardItem := TFavoriteBoardItem.Create;
118                         FavoBoardItem.Item := FBoard;
119                         FavoBoardItem.Title := FBoard.Title;
120                         Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoBoardItem);
121                         Node.ImageIndex := 15;
122                         Node.SelectedIndex := 15;
123                 end else if FThreadItem <> nil then begin
124                         FavoThreadItem := TFavoriteThreadItem.Create;
125                         FavoThreadItem.Item := FThreadItem;
126                         FavoThreadItem.Title := FThreadItem.Title;
127                         Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoThreadItem);
128                         Node.ImageIndex := 16;
129                         Node.SelectedIndex := 16;
130                 end;
131         end;
132
133         FavoriteDM.WriteFavorite;
134         Close;
135 end;
136
137 procedure TFavoriteAddDialog.CancelButtonClick(Sender: TObject);
138 begin
139         Close;
140 end;
141
142 procedure TFavoriteAddDialog.NewFolderButtonClick(Sender: TObject);
143 var
144         Dlg: TNewFavoriteFolderDialog;
145         Node: TTreeNode;
146         FavFolder: TFavoriteFolder;
147 begin
148         if FolderTreeView.Selected = nil then
149                 Exit;
150
151         Dlg := TNewFavoriteFolderDialog.Create(Self);
152         try
153                 Dlg.ShowModal;
154                 if Dlg.ModalResult = mrOK then begin
155                         if Length(Dlg.FolderEdit.Text) = 0 then
156                                 Exit;
157                         FavFolder := TFavoriteFolder.Create;
158                         Node := FolderTreeView.Items.AddChildObject(FolderTreeView.Selected, Dlg.FolderEdit.Text, FavFolder);
159                         Node.ImageIndex := 14;
160                         Node.SelectedIndex := 14;
161                         FolderTreeView.Selected := Node;
162                 end;
163         finally
164                 Dlg.Free;
165         end;
166 end;
167
168 procedure TFavoriteAddDialog.SetBoard(Board: TBoard);
169 begin
170         FBoard := Board;
171         if Board = nil then Exit;
172
173         NameEdit.Text := Board.Title;
174         CaptionEdit.Text := Board.Title;
175         TitleLabel.Caption := '\82±\82Ì\94Â\82ª\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82³\82ê\82Ü\82·';
176         NameLabel.Caption := '\94Â\96¼:';
177 end;
178
179 procedure TFavoriteAddDialog.SetThreadItem(ThreadItem: TThreadItem);
180 begin
181         FThreadItem := ThreadItem;
182         if ThreadItem = nil then Exit;
183
184         NameEdit.Text := ThreadItem.Title;
185         CaptionEdit.Text := ThreadItem.Title;
186         TitleLabel.Caption := '\82±\82Ì\83X\83\8c\83b\83h\82ª\82¨\8bC\82É\93ü\82è\82É\92Ç\89Á\82³\82ê\82Ü\82·';
187         NameLabel.Caption := '\83X\83\8c\83b\83h\96¼:';
188 end;
189
190 function TFavoriteAddDialog.GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
191 var
192         i: Integer;
193 begin
194         Result := nil;
195         for i := 0 to FavoriteDM.TreeView.Items.Count - 1 do begin
196                 if FavoriteDM.TreeView.Items[i].Data = FavFolder then begin
197                         Result := FavoriteDM.TreeView.Items[i];
198                         Exit;
199                 end;
200         end;
201 end;
202
203 end.