幽宮のクラス達

KMAppDelegate (Inherit from CMRAppDelegate)

  • CMRAppDelegateに幽宮用メソッドを追加
  • mainWindow のwindowControllerを保持 CMRMainBrowserの代わり

KMDocument (Inherit from NSDocument)

  • Browserクラスの代わりとなるもの。
  • 1つのファイル(スレッド)に付き1つのインスタンスが生成される。
  • 生成時にはWindowControllerを持たない。
  • ファイルの読み込み、ダウンロードはこのクラスが担当する。(ただし、実際の処理は専用クラスに委譲する)

KMLogDocumentWindowController(Inherit from NSWindowController)

  • Viewコンポーネントのロード配置及び相互通信のハブ役

KMBrowser (Inherit from KMLogDocumentWindowController)

  • CMRBrowserに変わるクラス
  • 掲示板リスト、スレッド一覧、スレッドビューなどを配置する

KMLogWindowController (Inherit from KMLogDocumentWindowController)

  • スレッド単独表示用クラス

KMBrowserDocumentProxy (Inheit from NSObject)

  • KMBrowserのアクション振り分け用のクラス
  • browerプロパティのドキュメントが変わっても、常にそのドキュメントとして振る舞う
  • KMBrowserはドキュメントに関わらず同じインスタンスをドキュメントとして扱えば良い
  • プロクシなのでアクション以外にでも使えるがアクション専用で!

KMResponsiveViewController (Inherit from NSViewController)

  • レスポンダーチェーンに割り込むいつものあれ

KMBoardList (Inherit from KMResponsiveViewController)

  • 掲示板リスト表示
  • NSOutlineViewとSmartBoardListを使用

KMThreadList (Inherit from KMResponsiveViewController)

  • スレッド一覧表示
  • ThreadsListTableとBSDBThreadListを使用

KMStatusLineViewController (Inherit from NSViewController)

  • ステータスバー用クラス

KMLogViewController (Inherit from KMResponsiveViewController)

  • 特に仕事なし!

KMBSLogViewController (Inherit from KMLogViewController, Conformed to KMBSLogPopUpOwner)

  • スレッド表示
  • CMRThreadViewを使用
  • BSTitleRulerViewを使用
  • BSLayoutManagerを使用
  • KMDocumentをrepresentedObjectに取る
  • KMDocumentより得たデータをNSTextStorageに変換(実際の処理はCMRThreadDictReader,CMRThreadComposingTaskに委譲)

KMBoardListItemCell (Inherit from BSIconAndTextCell)

  • 掲示板リスト用セル
  • ValueとしてBoardListItemを受け取る

KMThreadDeleteCenter (Inherit from NSObject)

  • スレッドのログ削除と再取得用
  • 削除と再取得双方の共通シートを管理する
  • 実際の削除も行う
  • 実際の再取得は行わない

KMHistoryStack (Inherit from NSObject)

  • KMBSLogViewController用の履歴管理クラス
  • 現在はKMDocumentをそのまま保持している

KMWorkerEmulator (Inherit from NSObject)

  • CMRThreadLayoutを排除するためのダミークラス
  • layoutDummyプロパティが与えられた場合それをCMRThreadLayoutのダミーとしてexecuteWithLayout:メソッドをinvokeする

KMBSLogViewDelegate (Inherit from NSObject, Conformed to NSTextViewDelegate)

  • KMBSLogViewControllerからCMRThreadViewのdelegateを分離

KMBSLogPopUp (Inherit from NSObject)

  • KMBSLogViewControllerからPopUp関連を分離
  • KMBSLogPopUpOwnerプロトコルを提供

KMReplyMessenger (Inherit from NSObject)

  • KMBSLogViewControllerから返信関連を分離


Extentions

CMRFavoritesManager+KMAddition (Category of CMRFavoritesManager)

  • お気に入りに追加/削除アクションとバリデーションを処理

CMRThreadAttributes_KMAddition (Category of NSDictionary)

  • CMRThreadAttributesとそれと同等の内容を持つNSDictionaryを同列に扱う
  • ポリモーフィズムでシームレスに
  • CMRThreadAttributes のConverterカテゴリに相当

以下ほんとのおまけ

KMLogViewController (Inherit from KMResponsiveViewController)

  • テスト用にでっち上げたクラス
  • CMRThreadViewを使用するのはかなりの労力がいりそうだったので他のクラスの動作確認のために作ったもの
  • .threadをHTMLに変換してWebViewにスレッドを表示する

KMLogBuilder (Inherit from NSObject)

  • .threadをスレッド表示データに変換するクラス

KMHTMLBuilder (Inherit from KMLogBuilder)

  • .threadをHTMLに変換するクラス

KMThreadConverter (Inherit from NSObject)

  • .threadを受け取ってスレッド表示データに変換するクラス
  • 変換アルゴリズムはKMLogBuilderで指定
カテゴリー: 幽宮 | タグ: | コメントをどうぞ

こっそりと 幽宮α4

幽宮2.1.1a4

BathyScaphe 2.1.1ベース

未実装機能多数あり

環境設定でマルチタッチジェスチャを無効にしていると3本指スワイプで掲示板リスト、スレッド一覧の表示/非表示が可能

3本指スワイプによる掲示板リスト、スレッド一覧の表示/非表示

バグ報告とかはここにコメントください。

カテゴリー: 幽宮 | コメントをどうぞ

進捗

スレッド表示部未実装

  • 検索
  • 掲示板を表示

スレッド一覧部未実装

  • ログモード

掲示板リスト部未実装

  • キータイプで選択

そのた

  • 履歴からの表示
  • 一部状況表示
  • 色々
カテゴリー: 幽宮 | コメントをどうぞ

色を変える1.1をリリースしました

色を変える1.1をリリースしました。

http://sourceforge.jp/users/masakih/pf/BSTRAEditor/files/

変更点はBathyScaphe 2.1.1の新機能に対応です。

使い方は このへんをご覧ください。

カテゴリー: 色を変える | コメントをどうぞ

BooksExporter 1.5をリリースしました

BooksExporter 1.5をリリースしました。

http://sourceforge.jp/users/masakih/pf/BooksExporter/files/?id=1085

変更点は

  • 新しいBooklog形式をサポート

です。

カテゴリー: BooksExporter | コメントをどうぞ

方向を修正

.thread辺りのやり取りが見えてきたので.threadとSQLiteを統括管理するクラス(群)が出来ないか考える。

カテゴリー: 幽宮 | タグ: , | コメントをどうぞ

やること

とにかく全機能が使えるようにする

それに当たり、機能はまず可能な限りViewControllerに集約する。変に迷わない。

その後、WindowController, Document に機能を割り振る。

カテゴリー: 幽宮 | タグ: , | コメントをどうぞ

つか、幽宮ってどういう意味? なんて読むの?

幽宮は「かくりのみや」と読みます。
意味は「イザナギのミコトが最後に住まわれた宮」のことで淡路国の一宮(いちのみや)伊弉諾神宮の事です。

 

なんで幽宮?

プロジェクト名を考えてるとき、たまたま調べ物を…

カテゴリー: 幽宮 | コメントをどうぞ

幽宮プロジェクトとは

幽宮プロジェクトとはBathyScapheをバラバラに引き裂いて、糊やネジやクギを取り替えながらもう一度組み立てるmasakihのお遊びプロジェクトである。

未だに理解不能な奥底にあるクラスの役割をひもときながら、ちぎったり引っ付けたりして遊ぶ。

あと、1 File – 1 Document , 1 Document – N WindowControllerの確立と1 WindowController – N Document(つまりタブ化)への架け橋を造る。でも、タブ化はしない。

さらに、肥大化したクラスを粉々に分解して理解不能なほどの数のクラス群に分ける。

さらにさらに、CMRThreadLayout嫌い。

もひとつおまけに、処理の流れが見えないorz。(ただの能力不足)

カテゴリー: 幽宮 | タグ: | コメントをどうぞ

BathyScapheプラグインを64bit版に更新しました

BathyScapheプラグインを64bit版に更新しました。

プレビューアを複数同時に使用出来るようにする
PreviewerSelector-4.2.1.zip

サムネイルをインライン表示する
BSInlinePreviewer-2.1.zip

リンクに応じてプレビューアやアプリケーションを変更する
BSLinkConductor-1.4-b3497e1.zip

モザイク表示でグロ画像でのダメージを軽減する
GroEvaderForBSn1000–e778a3b.zip

特殊プレビューア、次スレ検索プラグイン
NextThreadFinder.plugin.zip

 

PreviewerSelector, BSInlinePreviewer, BSLinkConductor詰め合わせ
PreviewerSelectorSet-4.2.1.zip

 

カテゴリー: BSInlinePreviewer, BSLinkConductor, NextThreadFinder, PreviewerSelector | タグ: | コメントをどうぞ