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.51 by h677, Wed Feb 1 15:23:49 2006 UTC revision 1.52 by h677, Wed Sep 19 15:00:38 2007 UTC
# Line 45  type Line 45  type
45          end;          end;
46    
47          TFavoriteDM = class(TDataModule)          TFavoriteDM = class(TDataModule)
                 procedure DataModuleDestroy(Sender: TObject);  
48          private          private
49                  { Private 宣言 }                  { Private 宣言 }
50            FAbEnd: Boolean;
51                  FStack: TStack;                  FStack: TStack;
52                  FTreeView: TTreeView;                  FTreeView: TTreeView;
53                  FModified: boolean;                  FModified: boolean;
54                  procedure ReadNode(Node: IXMLNode);                  procedure ReadNode(Node: IXMLNode);
55                  procedure AddSaveString(Node: TTreeNode; SaveList: TStringList);                  procedure AddSaveString(Node: TTreeNode; SaveList: TStringList);
 //              procedure AddSaveString(Node: TTreeNode; XMLNode: IXMLNode);  
 //              procedure SAXStartDocument(Sender: TObject);  
 //              procedure SAXEndDocument(Sender: TObject);  
 //              procedure SAXStartElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString; const Atts: IAttributes);  
 //              procedure SAXEndElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString);  
 //              procedure SAXCharacters(Sender: TObject; const PCh: SAXString);  
56          public          public
57                  { Public 宣言 }                  { Public 宣言 }
58                  procedure Clear;                  procedure Clear;
# Line 70  type Line 64  type
64                  procedure URLReplace(oldURLs: TStringList; newURLs: TStringList);                  procedure URLReplace(oldURLs: TStringList; newURLs: TStringList);
65                  property TreeView: TTreeView read FTreeView;                  property TreeView: TTreeView read FTreeView;
66                  property Modified: boolean read FModified write FModified;                  property Modified: boolean read FModified write FModified;
67            property AbEnd: Boolean read FAbEnd write FAbEnd;
68          end;          end;
69    
70  var  var
# Line 262  begin Line 257  begin
257    
258  end;  end;
259    
 procedure TFavoriteDM.DataModuleDestroy(Sender: TObject);  
 //var  
 //      i: Integer;  
 begin  
 {    TreeView.Items.BeginUpdate;  
         for i := TreeView.Items.Count - 1 downto 0 do begin  
            //   if TObject(TreeView.Items[i].Data) <> nil then  
        //       TObject(TreeView.Items[i].Data).Free;  
         end;  
     TreeView.Items.Clear;  
     TreeView.Items.EndUpdate;  
 }    //TreeView.Free;  
 end;  
260  procedure TFavoriteDM.Clear;  procedure TFavoriteDM.Clear;
261  var  var
262          Node    : TTreeNode;          Node    : TTreeNode;
# Line 307  var Line 289  var
289          FavFolder: TFavoriteFolder;          FavFolder: TFavoriteFolder;
290          LinkExists: Boolean;          LinkExists: Boolean;
291  begin  begin
292        FABend := False;
293        
294          FavoriteDM.Modified := true;          FavoriteDM.Modified := true;
295          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;
296    
# Line 341  begin Line 325  begin
325                                          Node.ImageIndex := 14;                                          Node.ImageIndex := 14;
326                                          Node.SelectedIndex := 14;                                          Node.SelectedIndex := 14;
327                                  end;                                  end;
328    
329                          finally                          finally
330                                  FStack.Free;                                  FStack.Free;
331                  XMLDoc.Free;                  XMLDoc.Free;
332                          end;                          end;
333                  except                  except
334                on e : Exception do begin
335                    FABend := True;
336                end;
337                  end;                  end;
338          end;          end;
339    
# Line 455  begin Line 443  begin
443  end;  end;
444    
445  procedure TFavoriteDM.WriteFavorite;  procedure TFavoriteDM.WriteFavorite;
 {  
 var  
         FileName: string;  
 //      SaveList: TStringList;  
 //      i: Integer;  
 //      Count: Integer;  
   
         XMLDoc: IXMLDocument;  
         XMLNode: IXMLNode;  
 //      FavoNode: IXMLNode;  
 begin  
         XMLDoc :=       NewXMLDocument;  
         XMLDoc.Encoding := 'Shift_JIS';  
         XMLDoc.StandAlone := 'yes';  
         XMLNode := XMLDoc.AddChild('favorite');  
         FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;  
         AddSaveString(TreeView.Items.GetFirstNode, XMLNode);  
         XMLDoc.SaveToFile(FileName);  
 }  
446  var  var
447          FileName, tmpFileName: string;          FileName, tmpFileName: string;
448          SaveList: TStringList;          SaveList: TStringList;
# Line 502  begin Line 471  begin
471          end;          end;
472  end;  end;
473    
 {  
 procedure TFavoriteDM.AddSaveString(Node: TTreeNode; XMLNode: IXMLNode);  
 var  
         i: Integer;  
 //      s: string;  
         FavBoard: TFavoriteBoardItem;  
         FavThread: TFavoriteThreadItem;  
         FavNode: IXMLNode;  
 begin  
         for i := 0 to Node.Count - 1 do begin  
                 if TObject(Node.Item[i].Data) is TFavoriteFolder then begin  
                         FavNode := XMLNode.AddChild('folder');  
                         FavNode.Attributes['title'] := Node.Item[i].Text;  
                         AddSaveString(Node.Item[i], FavNode);  
                 end else if TObject(Node.Item[i].Data) is TFavoriteBoardItem then begin  
                         FavBoard := TFavoriteBoardItem(Node.Item[i].Data);  
                         FavNode := XMLNode.AddChild('favitem');  
                         FavNode.Attributes['type'] := '2ch';  
                         FavNode.Attributes['favtype'] := 'board';  
                         FavNode.Attributes['bbs'] := FavBoard.BBSID;  
                         FavNode.Attributes['title'] := Node.Item[i].Text;  
                         FavNode.Attributes['boardname'] := FavBoard.BoardName;  
                 end else if TObject(Node.Item[i].Data) is TFavoriteThreadItem then begin  
                         FavThread := TFavoriteThreadItem(Node.Item[i].Data);  
                         FavNode := XMLNode.AddChild('favitem');  
                         FavNode.Attributes['type'] := '2ch';  
                         FavNode.Attributes['favtype'] := 'thread';  
                         FavNode.Attributes['bbs'] := FavThread.BBSID;  
                         FavNode.Attributes['thread'] := FavThread.ThreadID;  
                         FavNode.Attributes['title'] := Node.Item[i].Text;  
                         FavNode.Attributes['threadname'] := FavThread.ThreadName;  
                 end;  
         end;  
 end;  
 }  
   
474  procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList);  procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList);
475  var  var
476          s: string;          s: string;
# Line 570  begin Line 503  begin
503          end;          end;
504  end;  end;
505    
 {  
 procedure TFavoriteDM.SAXStartDocument(Sender: TObject);  
 begin  
         FStack := TStack.Create;  
         FStack.Push(FTreeView.Items.GetFirstNode);  
 end;  
   
 procedure TFavoriteDM.SAXEndDocument(Sender: TObject);  
 begin  
         FStack.Free;  
 end;  
   
 procedure TFavoriteDM.SAXStartElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString;  
         const Atts: IAttributes);  
 var  
         FavType: string;  
         ParentNode: TTreeNode;  
         CurrentNode: TTreeNode;  
         FavFolder: TFavoriteFolder;  
         FavBoard: TFavoriteBoardItem;  
         FavThread: TFavoriteThreadItem;  
 begin  
         if QName = 'folder' then begin  
                 ParentNode := FStack.Peek;  
                 if TObject(ParentNode.Data) is TFavoriteFolder then begin  
                         FavFolder := TFavoriteFolder.Create;  
                         CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Atts.getValue('title'), FavFolder);  
                         CurrentNode.ImageIndex := 12;  
                         CurrentNode.SelectedIndex := 13;  
                         FStack.Push(CurrentNode);  
                 end;  
         end else if QName = 'favitem' then begin  
                 ParentNode := FStack.Peek;  
                 if TObject(ParentNode.Data) is TFavoriteFolder then begin  
                         FavType := Atts.getValue('favtype');  
                         if FavType = 'board' then begin  
                                 FavBoard := TFavoriteBoardItem.Create;  
                                 FavBoard.BBSID := Atts.getValue('bbs');  
                                 FavBoard.BoardName := Atts.getValue('boardname');  
                                 CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Atts.getValue('title'), FavBoard);  
                                 CurrentNode.ImageIndex := 14;  
                                 CurrentNode.SelectedIndex := 15;  
                         end else if FavType = 'thread' then begin  
                                 FavThread := TFavoriteThreadItem.Create;  
                                 FavThread.BBSID := Atts.getValue('bbs');  
                                 FavThread.ThreadID := Atts.getValue('thread');  
                                 FavThread.ThreadName := Atts.getValue('threadname');  
                                 CurrentNode := FTreeView.Items.AddChildObject(ParentNode, Atts.getValue('title'), FavThread);  
                                 CurrentNode.ImageIndex := 16;  
                                 CurrentNode.SelectedIndex := 17;  
                         end;  
                 end;  
         end;  
 end;  
   
 procedure TFavoriteDM.SAXEndElement(Sender: TObject; const NamespaceURI, LocalName, QName: SAXString);  
 begin  
         if QName = 'folder' then begin  
                 if FStack.Count <> 0 then  
                         FStack.Pop;  
         end;  
 end;  
   
 procedure TFavoriteDM.SAXCharacters(Sender: TObject; const PCh: SAXString);  
 begin  
 //  
 end;  
 }  
506  function TFavoriteDM.SaveFavoriteFile(FileName: String) : Boolean;  function TFavoriteDM.SaveFavoriteFile(FileName: String) : Boolean;
507  var  var
508          FavoriteFilePath: string;          FavoriteFilePath: string;

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

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