6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, ComCtrls, StdCtrls, Favorite, ImgList, BoardGroup, NewFavoriteFolder;
10 TFavoriteAddDialog = class(TForm)
17 CancelButton: TButton;
18 NewFolderButton: TButton;
19 FolderTreeView: TTreeView;
21 procedure FormCreate(Sender: TObject);
22 procedure OKButtonClick(Sender: TObject);
23 procedure CancelButtonClick(Sender: TObject);
24 procedure NewFolderButtonClick(Sender: TObject);
28 FThreadItem: TThreadItem;
29 // procedure PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
30 function GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
33 procedure SetBoard(Board: TBoard);
34 procedure SetThreadItem(ThreadItem: TThreadItem);
38 FavoriteAddDialog: TFavoriteAddDialog;
46 procedure TFavoriteAddDialog.FormCreate(Sender: TObject);
53 FolderTreeView.Items.BeginUpdate;
54 FolderTreeView.Items := FavoriteDM.TreeView.Items;
55 for i := FolderTreeView.Items.Count - 1 downto 0 do begin
56 if not (TObject(FolderTreeView.Items[i].Data) is TFavoriteFolder) then
57 FolderTreeView.Items[i].Delete;
60 if FolderTreeView.Items.GetFirstNode <> nil then begin
61 FolderTreeView.Items.GetFirstNode.Expanded := True;
62 FolderTreeView.Items.GetFirstNode.Selected := True;
64 FolderTreeView.Items.EndUpdate;
66 ShowMessage(IntToStr(eT-sT));
68 { Node := FolderTreeView.Items.AddChild(nil, GikoForm.Favorite.Root.Title);
70 Node.Data := GikoForm.Favorite.Root;
71 PrepareFavoriteTree(GikoForm.Favorite.Root, Node);
72 Node.Expanded := True;
73 Node.Selected := True;}
77 {procedure TFavoriteAddDialog.PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
80 ChildFavo: TFavoriteItem;
83 for i := 0 to TFavoriteFolder(Favo).Count - 1 do begin
85 ChildFavo := TFavoriteFolder(Favo).Items[i];
86 if ChildFavo is TFavoriteFolder then begin
87 ChildNode := FolderTreeView.Items.AddChild(Node, ChildFavo.Title);
88 ChildNode.ImageIndex := 0;
89 ChildNode.Data := ChildFavo;
90 PrepareFavoriteTree(ChildFavo, ChildNode);
91 end else if ChildFavo is TFavoriteBoardItem then begin
92 end else if ChildFavo is TFavoriteThreadItem then begin
97 procedure TFavoriteAddDialog.OKButtonClick(Sender: TObject);
101 FavoBoardItem: TFavoriteBoardItem;
102 FavoThreadItem: TFavoriteThreadItem;
105 if FolderTreeView.Selected = nil then
108 for i := 0 to FolderTreeView.Items.Count - 1 do begin
110 FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Data);
111 if FavNode = nil then begin
112 FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Parent.Data);
113 if FavNode <> nil then
114 Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, FolderTreeView.Items[i].Text, FolderTreeView.Items[i].Data);
115 Node.ImageIndex := 14;
116 Node.SelectedIndex := 14;
121 FavNode := GetGikoFavoriteNode(FolderTreeView.Selected.Data);
122 if FavNode <> nil then begin
123 if FBoard <> nil then begin
124 FavoBoardItem := TFavoriteBoardItem.Create( FBoard.URL, FBoard.Title, FBoard );
125 Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoBoardItem);
126 Node.ImageIndex := 15;
127 Node.SelectedIndex := 15;
128 end else if FThreadItem <> nil then begin
129 FavoThreadItem := TFavoriteThreadItem.Create( FThreadItem.URL, FThreadItem.Title, FThreadItem );
130 Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoThreadItem);
131 Node.ImageIndex := 16;
132 Node.SelectedIndex := 16;
136 FavoriteDM.WriteFavorite;
140 procedure TFavoriteAddDialog.CancelButtonClick(Sender: TObject);
145 procedure TFavoriteAddDialog.NewFolderButtonClick(Sender: TObject);
147 Dlg: TNewFavoriteFolderDialog;
149 FavFolder: TFavoriteFolder;
151 if FolderTreeView.Selected = nil then
154 Dlg := TNewFavoriteFolderDialog.Create(Self);
157 if Dlg.ModalResult = mrOK then begin
158 if Length(Dlg.FolderEdit.Text) = 0 then
160 FavFolder := TFavoriteFolder.Create;
161 Node := FolderTreeView.Items.AddChildObject(FolderTreeView.Selected, Dlg.FolderEdit.Text, FavFolder);
162 Node.ImageIndex := 14;
163 Node.SelectedIndex := 14;
164 FolderTreeView.Selected := Node;
171 procedure TFavoriteAddDialog.SetBoard(Board: TBoard);
174 if Board = nil then Exit;
176 NameEdit.Text := Board.Title;
177 CaptionEdit.Text := Board.Title;
178 TitleLabel.Caption := '
\82±
\82Ì
\94Â
\82ª
\82¨
\8bC
\82É
\93ü
\82è
\82É
\92Ç
\89Á
\82³
\82ê
\82Ü
\82·';
179 NameLabel.Caption := '
\94Â
\96¼:';
182 procedure TFavoriteAddDialog.SetThreadItem(ThreadItem: TThreadItem);
184 FThreadItem := ThreadItem;
185 if ThreadItem = nil then Exit;
187 NameEdit.Text := ThreadItem.Title;
188 CaptionEdit.Text := ThreadItem.Title;
189 TitleLabel.Caption := '
\82±
\82Ì
\83X
\83\8c\83b
\83h
\82ª
\82¨
\8bC
\82É
\93ü
\82è
\82É
\92Ç
\89Á
\82³
\82ê
\82Ü
\82·';
190 NameLabel.Caption := '
\83X
\83\8c\83b
\83h
\96¼:';
193 function TFavoriteAddDialog.GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
198 for i := 0 to FavoriteDM.TreeView.Items.Count - 1 do begin
199 if FavoriteDM.TreeView.Items[i].Data = FavFolder then begin
200 Result := FavoriteDM.TreeView.Items[i];