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.52 by h677, Wed Sep 19 15:00:38 2007 UTC revision 1.53 by h677, Sun Mar 2 03:51:19 2008 UTC
# Line 48  type Line 48  type
48          private          private
49                  { Private 宣言 }                  { Private 宣言 }
50          FAbEnd: Boolean;          FAbEnd: Boolean;
                 FStack: TStack;  
51                  FTreeView: TTreeView;                  FTreeView: TTreeView;
52                  FModified: boolean;                  FModified: boolean;
53                  procedure ReadNode(Node: IXMLNode);                  procedure ReadNode(Node: IXMLNode; Stack: TStack; TreeView: TTreeView);
54                  procedure AddSaveString(Node: TTreeNode; SaveList: TStringList);                  procedure AddSaveString(Node: TTreeNode; SaveList: TStringList);
55          public          public
56                  { Public 宣言 }                  { Public 宣言 }
# Line 288  var Line 287  var
287          i: Integer;          i: Integer;
288          FavFolder: TFavoriteFolder;          FavFolder: TFavoriteFolder;
289          LinkExists: Boolean;          LinkExists: Boolean;
290        Stack: TStack;
291  begin  begin
292      FABend := False;      FABend := False;
293            
# Line 306  begin Line 306  begin
306              LoadXMLDocument(FileName, XMLDoc);              LoadXMLDocument(FileName, XMLDoc);
307                          XMLNode := XMLDoc.DocumentElement;                          XMLNode := XMLDoc.DocumentElement;
308    
309                          FStack := TStack.Create;                          Stack := TStack.Create;
310                          try                          try
311                                  FStack.Push(Node);                                  Stack.Push(Node);
312                                  LinkExists := False;                                  LinkExists := False;
313                                  if XMLNode.NodeName = 'favorite' then begin                                  if XMLNode.NodeName = 'favorite' then begin
314                                          for i := XMLNode.ChildNodes.Count - 1 downto 0 do begin                                          for i := XMLNode.ChildNodes.Count - 1 downto 0 do begin
315                                                  ReadNode(XMLNode.ChildNodes[i]);                                                  ReadNode(XMLNode.ChildNodes[i], Stack, FTreeView);
316                                                  if (XMLNode.ChildNodes[i].NodeName = 'folder') and                                                  if (XMLNode.ChildNodes[i].NodeName = 'folder') and
317                                                           (XMLNode.ChildNodes[i].Attributes['title'] = FAVORITE_LINK_NAME) then begin                                                           (XMLNode.ChildNodes[i].Attributes['title'] = FAVORITE_LINK_NAME) then begin
318                                                          LinkExists := True;                                                          LinkExists := True;
# Line 327  begin Line 327  begin
327                                  end;                                  end;
328    
329                          finally                          finally
330                                  FStack.Free;                                  Stack.Free;
331                  XMLDoc.Free;                  XMLDoc.Free;
332                          end;                          end;
333                  except                  except
# Line 337  begin Line 337  begin
337                  end;                  end;
338          end;          end;
339    
 {  
         FavFolder := TFavoriteFolder.Create;  
         Node := FTreeView.Items.AddChildObjectFirst(nil, FAVORITE_ROOT_NAME, FavFolder);  
         Node.ImageIndex := 12;  
         Node.SelectedIndex := 13;  
   
         FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;  
         if not FileExists(FileName) then  
                 Exit;  
   
                 FavSAXHandler.OnStartDocument := SAXStartDocument;  
                 FavSAXHandler.OnEndDocument := SAXEndDocument;  
                 FavSAXHandler.OnStartElement := SAXStartElement;  
                 FavSAXHandler.OnStartElement := SAXStartElement;  
                 FavSAXHandler.OnEndElement := SAXEndElement;  
                 FavSAXHandler.OnCharacters := SAXCharacters;  
   
                 FavSAXReader.Vendor := 'Keith Wood';  
                 FavSAXReader.URL := FileName;  
                 FavSAXReader.Parse;}  
340  end;  end;
341    
342  procedure TFavoriteDM.ReadNode(Node: IXMLNode);  procedure TFavoriteDM.ReadNode(Node: IXMLNode; Stack: TStack; TreeView: TTreeView);
343  var  var
344          i: Integer;          i: Integer;
345    
# Line 372  var Line 352  var
352          threadItem      : TThreadItem;          threadItem      : TThreadItem;
353  begin  begin
354          if Node.NodeName = 'folder' then begin          if Node.NodeName = 'folder' then begin
355                  ParentNode := FStack.Peek;          CurrentNode := nil;
356                    ParentNode := Stack.Peek;
357                  if TObject(ParentNode.Data) is TFavoriteFolder then begin                  if TObject(ParentNode.Data) is TFavoriteFolder then begin
358                          FavFolder := TFavoriteFolder.Create;                          FavFolder := TFavoriteFolder.Create;
359                          CurrentNode := FTreeView.Items.AddChildObjectFirst(ParentNode, Node.Attributes['title'], FavFolder);                          CurrentNode := TreeView.Items.AddChildObjectFirst(ParentNode, Node.Attributes['title'], FavFolder);
360                          CurrentNode.ImageIndex := 14;                          CurrentNode.ImageIndex := 14;
361                          CurrentNode.SelectedIndex := 14;                          CurrentNode.SelectedIndex := 14;
362                          FStack.Push(CurrentNode);                          Stack.Push(CurrentNode);
363                  end;                  end;
364                  for i := Node.ChildNodes.Count - 1 downto 0 do begin                  for i := Node.ChildNodes.Count - 1 downto 0 do begin
365                          ReadNode(Node.ChildNodes[i]);                          ReadNode(Node.ChildNodes[i], Stack, TreeView);
366                  end;                  end;
367                  if TObject(ParentNode.Data) is TFavoriteFolder then                  if CurrentNode <> nil then
368                          CurrentNode.Expanded := Node.Attributes[ 'expanded' ] = 'true';                          CurrentNode.Expanded := Node.Attributes[ 'expanded' ] = 'true';
369                  if FStack.Count <> 0 then                  if Stack.Count <> 0 then
370                          FStack.Pop;                          Stack.Pop;
371          end else if Node.NodeName = 'favitem' then begin          end else if Node.NodeName = 'favitem' then begin
372                  try                  try
373                          ParentNode := FStack.Peek;                          ParentNode := Stack.Peek;
374                          if TObject(ParentNode.Data) is TFavoriteFolder then begin                          if TObject(ParentNode.Data) is TFavoriteFolder then begin
375                                  if Node.Attributes['favtype'] = 'board' then begin                                  if Node.Attributes['favtype'] = 'board' then begin
376                                          FavBoard := nil;                                          FavBoard := nil;
# Line 403  begin Line 384  begin
384                                                  FavBoard := TFavoriteBoardItem.Create(                                                  FavBoard := TFavoriteBoardItem.Create(
385                                                          Node.Attributes[ 'url' ], MojuUtils.UnSanitize(Node.Attributes[ 'title' ]), nil );                                                          Node.Attributes[ 'url' ], MojuUtils.UnSanitize(Node.Attributes[ 'title' ]), nil );
386                                          end;                                          end;
387                                          CurrentNode := FTreeView.Items.AddChildObjectFirst(ParentNode, UnSanitize(Node.Attributes['title']), FavBoard);                                          CurrentNode := TreeView.Items.AddChildObjectFirst(ParentNode, UnSanitize(Node.Attributes['title']), FavBoard);
388                                          CurrentNode.ImageIndex := 15;                                          CurrentNode.ImageIndex := 15;
389                                          CurrentNode.SelectedIndex := 15;                                          CurrentNode.SelectedIndex := 15;
390                                  end else if Node.Attributes['favtype'] = 'thread' then begin                                  end else if Node.Attributes['favtype'] = 'thread' then begin
# Line 431  begin Line 412  begin
412                                                  FavThread := TFavoriteThreadItem.Create(                                                  FavThread := TFavoriteThreadItem.Create(
413                                                          Node.Attributes[ 'url' ], UnSanitize(Node.Attributes[ 'title' ]), nil );                                                          Node.Attributes[ 'url' ], UnSanitize(Node.Attributes[ 'title' ]), nil );
414                                          end;                                          end;
415                                          CurrentNode := FTreeView.Items.AddChildObjectFirst(ParentNode, UnSanitize(Node.Attributes['title']), FavThread);                                          CurrentNode := TreeView.Items.AddChildObjectFirst(ParentNode, UnSanitize(Node.Attributes['title']), FavThread);
416                                          CurrentNode.ImageIndex := 16;                                          CurrentNode.ImageIndex := 16;
417                                          CurrentNode.SelectedIndex := 16;                                          CurrentNode.SelectedIndex := 16;
418                                  end;                                  end;

Legend:
Removed from v.1.52  
changed lines
  Added in v.1.53

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