ひさびさの更新です。Yaxoとかの解析とかしててblogから遠のいてました。
前回はWorkspaceから操作する方法であったが,Projectメニューの'手元のディスクにだけプロジェクトを保存する'で保存できるようにProject>>writeFileNamed:fromDirectory:toServer:を下記のように変更した。これでメニューから保存できるようになった。だが、読込はどうしようか?やはりProjectメニューの'プロジェクトをファイルから読込…'にいれるべきかな。読み込みも出来て、ある程度テストしたらチェンジセットにまとめて公開します。
前回はWorkspaceから操作する方法であったが,Projectメニューの'手元のディスクにだけプロジェクトを保存する'で保存できるようにProject>>writeFileNamed:fromDirectory:toServer:を下記のように変更した。これでメニューから保存できるようになった。だが、読込はどうしようか?やはりProjectメニューの'プロジェクトをファイルから読込…'にいれるべきかな。読み込みも出来て、ある程度テストしたらチェンジセットにまとめて公開します。
| local resp gifFileName f project writer projectFile | projectFile := localDirectory oldFileNamed: localFileName. gifFileName _ self name,'.png'. localDirectory deleteFileNamed: gifFileName ifAbsent: []. local _ localDirectory fileNamed: gifFileName. thumbnail ifNil: [ (thumbnail _ Form extent: 100@80) fillColor: Color orange ] ifNotNil: [ thumbnail unhibernate. ]. f _ thumbnail colorReduced. "minimize depth" f depth > 8 ifTrue: [ f _ thumbnail asFormOfDepth: 8 ]. project := FileStream readOnlyFileNamed: projectFile fullName. project binary. writer := PNGSqeuakObject on: local. [ writer nextPutImage: f interlace: 0 filter: 0 Object: project contents] ensure: [local close. project close. projectFile close.]. [local _ StandardFileStream readOnlyFileNamed: (localDirectory fullNameFor: gifFileName). (primaryServerDirectory isKindOf: FileDirectory) ifTrue: [primaryServerDirectory deleteFileNamed: gifFileName ifAbsent: []]. resp _ primaryServerDirectory putFile: local named: gifFileName retry: false. ] on: Error do: [:ex |]. local close. primaryServerDirectory updateProjectInfoFor: self. primaryServerDirectory sleep. "if ftp, close the connection"