Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Favorite.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by hi_, Sat Aug 9 13:50:43 2003 UTC revision 1.2 by yoffy, Sat Aug 9 14:22:49 2003 UTC
# Line 3  unit Favorite; Line 3  unit Favorite;
3  interface  interface
4    
5  uses  uses
6          Messages, SysUtils, Classes, Contnrs, ComCtrls, {HttpApp,}          Messages, SysUtils, Classes, Contnrs, ComCtrls, {HttpApp,} YofUtils,
7          GikoSystem, XMLIntf, XMLDoc;          GikoSystem{, XMLIntf, XMLDoc};
8          {SAX, SAXHelpers, SAXComps, SAXKW;}          {SAX, SAXHelpers, SAXComps, SAXKW;}
9    
10  type  type
# Line 40  type Line 40  type
40                  FTreeView: TTreeView;                  FTreeView: TTreeView;
41    
42                  procedure ReadNode(Node: IXMLNode);                  procedure ReadNode(Node: IXMLNode);
43  //              procedure AddSaveString(Node: TTreeNode; SaveList: TStringList);                  procedure AddSaveString(Node: TTreeNode; SaveList: TStringList);
44                  procedure AddSaveString(Node: TTreeNode; XMLNode: IXMLNode);  //              procedure AddSaveString(Node: TTreeNode; XMLNode: IXMLNode);
45  //              procedure SAXStartDocument(Sender: TObject);  //              procedure SAXStartDocument(Sender: TObject);
46  //              procedure SAXEndDocument(Sender: TObject);  //              procedure SAXEndDocument(Sender: TObject);
47  //              procedure SAXStartElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString; const Atts: IAttributes);  //              procedure SAXStartElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString; const Atts: IAttributes);
# Line 89  begin Line 89  begin
89  end;  end;
90    
91  procedure TFavoriteDM.ReadFavorite;  procedure TFavoriteDM.ReadFavorite;
 {var  
         FileName: string;  
         Node: TTreeNode;  
         FavFolder: TFavoriteFolder;}  
92  var  var
93          FileName: string;          FileName: string;
94          XMLDoc: IXMLDocument;          XMLDoc: IXMLDocument;
# Line 102  var Line 98  var
98          FavFolder: TFavoriteFolder;          FavFolder: TFavoriteFolder;
99          LinkExists: Boolean;          LinkExists: Boolean;
100  begin  begin
101    
102          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;
103    
104          FavFolder := TFavoriteFolder.Create;          FavFolder := TFavoriteFolder.Create;
105          Node := FTreeView.Items.AddChildObject(nil, FAVORITE_ROOT_NAME, FavFolder);          Node := FTreeView.Items.AddChildObject(nil, FAVORITE_ROOT_NAME, FavFolder);
106          Node.ImageIndex := 12;          Node.ImageIndex := 14;
107          Node.SelectedIndex := 13;          Node.SelectedIndex := 14;
108    
109          if FileExists(FileName) then begin          if FileExists(FileName) then begin
                 XMLDoc := LoadXMLDocument(FileName);  
                 XMLNode := XMLDoc.DocumentElement;  
   
                 FStack := TStack.Create;  
110                  try                  try
111                          FStack.Push(Node);                          XMLDoc := LoadXMLDocument(FileName);
112                          LinkExists := False;                          XMLNode := XMLDoc.DocumentElement;
113                          if XMLNode.NodeName = 'favorite' then begin  
114                                  for i := 0 to XMLNode.ChildNodes.Count - 1 do begin                          FStack := TStack.Create;
115                                          ReadNode(XMLNode.ChildNodes[i]);                          try
116                                          if (XMLNode.ChildNodes[i].NodeName = 'folder') and                                  FStack.Push(Node);
117                                                   (XMLNode.ChildNodes[i].Attributes['title'] = FAVORITE_LINK_NAME) then begin                                  LinkExists := False;
118                                                  LinkExists := True;                                  if XMLNode.NodeName = 'favorite' then begin
119                                            for i := 0 to XMLNode.ChildNodes.Count - 1 do begin
120                                                    ReadNode(XMLNode.ChildNodes[i]);
121                                                    if (XMLNode.ChildNodes[i].NodeName = 'folder') and
122                                                             (XMLNode.ChildNodes[i].Attributes['title'] = FAVORITE_LINK_NAME) then begin
123                                                            LinkExists := True;
124                                                    end;
125                                          end;                                          end;
126                                  end;                                  end;
127                                    if not LinkExists then begin
128                                            FavFolder := TFavoriteFolder.Create;
129                                            Node := FTreeView.Items.AddChildObject(Node, FAVORITE_LINK_NAME, FavFolder);
130                                            Node.ImageIndex := 14;
131                                            Node.SelectedIndex := 14;
132                                    end;
133                            finally
134                                    FStack.Free;
135                          end;                          end;
136                          if not LinkExists then begin                  except
                                 FavFolder := TFavoriteFolder.Create;  
                                 Node := FTreeView.Items.AddChildObject(Node, FAVORITE_LINK_NAME, FavFolder);  
                                 Node.ImageIndex := 12;  
                                 Node.SelectedIndex := 13;  
                         end;  
                 finally  
                         FStack.Free;  
137                  end;                  end;
138          end;          end;
139    
140  {       FavFolder := TFavoriteFolder.Create;  {
141            FavFolder := TFavoriteFolder.Create;
142          Node := FTreeView.Items.AddChildObject(nil, FAVORITE_ROOT_NAME, FavFolder);          Node := FTreeView.Items.AddChildObject(nil, FAVORITE_ROOT_NAME, FavFolder);
143          Node.ImageIndex := 12;          Node.ImageIndex := 12;
144          Node.SelectedIndex := 13;          Node.SelectedIndex := 13;
# Line 173  begin Line 174  begin
174                  if TObject(ParentNode.Data) is TFavoriteFolder then begin                  if TObject(ParentNode.Data) is TFavoriteFolder then begin
175                          FavFolder := TFavoriteFolder.Create;                          FavFolder := TFavoriteFolder.Create;
176                          CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Node.Attributes['title'], FavFolder);                          CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Node.Attributes['title'], FavFolder);
177                          CurrentNode.ImageIndex := 12;                          CurrentNode.ImageIndex := 14;
178                          CurrentNode.SelectedIndex := 13;                          CurrentNode.SelectedIndex := 14;
179                          FStack.Push(CurrentNode);                          FStack.Push(CurrentNode);
180                  end;                  end;
181                  for i := 0 to Node.ChildNodes.Count - 1 do begin                  for i := 0 to Node.ChildNodes.Count - 1 do begin
# Line 190  begin Line 191  begin
191                                  FavBoard.BBSID := Node.Attributes['bbs'];                                  FavBoard.BBSID := Node.Attributes['bbs'];
192                                  FavBoard.BoardName := Node.Attributes['boardname'];                                  FavBoard.BoardName := Node.Attributes['boardname'];
193                                  CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Node.Attributes['title'], FavBoard);                                  CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Node.Attributes['title'], FavBoard);
194                                  CurrentNode.ImageIndex := 14;                                  CurrentNode.ImageIndex := 15;
195                                  CurrentNode.SelectedIndex := 15;                                  CurrentNode.SelectedIndex := 15;
196                          end else if Node.Attributes['favtype'] = 'thread' then begin                          end else if Node.Attributes['favtype'] = 'thread' then begin
197                                  FavThread := TFavoriteThreadItem.Create;                                  FavThread := TFavoriteThreadItem.Create;
# Line 199  begin Line 200  begin
200                                  FavThread.ThreadName := Node.Attributes['threadname'];                                  FavThread.ThreadName := Node.Attributes['threadname'];
201                                  CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Node.Attributes['title'], FavThread);                                  CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Node.Attributes['title'], FavThread);
202                                  CurrentNode.ImageIndex := 16;                                  CurrentNode.ImageIndex := 16;
203                                  CurrentNode.SelectedIndex := 17;                                  CurrentNode.SelectedIndex := 16;
204                          end;                          end;
205                  end;                  end;
206          end;          end;
207  end;  end;
208    
209  procedure TFavoriteDM.WriteFavorite;  procedure TFavoriteDM.WriteFavorite;
210    {
211  var  var
212          FileName: string;          FileName: string;
213  //      SaveList: TStringList;  //      SaveList: TStringList;
# Line 223  begin Line 225  begin
225          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;
226          AddSaveString(TreeView.Items.GetFirstNode, XMLNode);          AddSaveString(TreeView.Items.GetFirstNode, XMLNode);
227          XMLDoc.SaveToFile(FileName);          XMLDoc.SaveToFile(FileName);
228  {var  }
229    var
230          FileName: string;          FileName: string;
231          SaveList: TStringList;          SaveList: TStringList;
232  begin  begin
# Line 237  begin Line 240  begin
240                  SaveList.SaveToFile(FileName);                  SaveList.SaveToFile(FileName);
241          finally          finally
242                  SaveList.Free;                  SaveList.Free;
243          end;}          end;
244  end;  end;
245    
246    {
247  procedure TFavoriteDM.AddSaveString(Node: TTreeNode; XMLNode: IXMLNode);  procedure TFavoriteDM.AddSaveString(Node: TTreeNode; XMLNode: IXMLNode);
248  var  var
249          i: Integer;          i: Integer;
# Line 273  begin Line 277  begin
277                  end;                  end;
278          end;          end;
279  end;  end;
280    }
281    
282  {procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList);  procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList);
283  var  var
284          i: Integer;          i: Integer;
285          s: string;          s: string;
# Line 299  begin Line 304  begin
304                          SaveList.Add(s);                          SaveList.Add(s);
305                  end;                  end;
306          end;          end;
307  end;}  end;
308    
309  {  {
310  procedure TFavoriteDM.SAXStartDocument(Sender: TObject);  procedure TFavoriteDM.SAXStartDocument(Sender: TObject);

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26