+
+ logger.log(logger.HIGH, "Leaving RensoNoteList.rensoNoteItemPressed");
+ }
+
+ // Evernoteの関連ノートの取得が完了
+ @SuppressWarnings("unused")
+ private void enRelatedNotesComplete() {
+ logger.log(logger.HIGH, "Entering RensoNoteList.enRelatedNotesComplete");
+
+ Pair<String, List<String>> enRelatedNoteGuidPair = enRelatedNotesRunner.getENRelatedNoteGuids(); // <元ノートguid, 関連ノートguidリスト>
+
+ if (enRelatedNoteGuidPair == null) {
+ return;
+ }
+
+ String sourceGuid = enRelatedNoteGuidPair.getFirst();
+ List<String> enRelatedNoteGuids = enRelatedNoteGuidPair.getSecond();
+
+
+ if (sourceGuid != null && !sourceGuid.equals("") && enRelatedNoteGuids != null) { // Evernote関連ノートがnullでなければ
+ // まずキャッシュに追加
+ enRelatedNotesCache.put(sourceGuid, enRelatedNoteGuids);
+
+ if (!enRelatedNoteGuids.isEmpty()) { // Evernote関連ノートが存在していて
+ if (sourceGuid.equals(this.guid)) { // 取得したデータが今開いているノートの関連ノートなら
+ // mergedHistoryにEvernote関連ノートを追加してから再描画
+ addENRelatedNotes(enRelatedNoteGuids);
+ repaintRensoNoteList(true);
+ }
+ }
+ }
+
+ logger.log(logger.HIGH, "Leaving RensoNoteList.enRelatedNotesComplete");
+ }
+
+ // Evernote関連ノートの関連度情報をmergedHistoryに追加
+ private void addENRelatedNotes(List<String> relatedNoteGuids) {
+ logger.log(logger.EXTREME, "Entering RensoNoteList.addENRelatedNotes");
+
+ // Evernote関連ノート<guid, 関連ポイント>
+ HashMap<String, Integer> enRelatedNotes = new HashMap<String, Integer>();
+
+ for (String relatedGuid : relatedNoteGuids) {
+ enRelatedNotes.put(relatedGuid, Global.getENRelatedNotesWeight());
+ }
+
+ mergedHistory = mergeHistory(filterHistory(enRelatedNotes), mergedHistory);
+
+ logger.log(logger.EXTREME, "Leaving RensoNoteList.addENRelatedNotes");
+ }
+
+ // Evernoteの関連ノート取得スレッドを終了させる
+ public boolean stopThread() {
+ logger.log(logger.HIGH, "Entering RensoNoteList.stopThread");
+
+ if (!enRelatedNotesRunner.addStop()) {
+ logger.log(logger.HIGH, "RensoNoteList.stopThread failed(enRelatedNotesRunner)");
+ return false;
+ }
+ if (!enThumbnailRunner.addStop()) {
+ logger.log(logger.HIGH, "RensoNoteList.stopThread failed(enThumbnailRunner)");
+ return false;
+ }
+
+ logger.log(logger.HIGH, "RensoNoteList.stopThread succeeded");
+ return true;
+ }
+
+ public QThread getEnRelatedNotesThread() {
+ return enRelatedNotesThread;
+ }
+
+ public String getGuid() {
+ return guid;
+ }
+
+ // ローカルに存在していて、かつアクティブなノートだけを返す
+ private HashMap<String, Integer> filterHistory(HashMap<String, Integer> sourceHistory) {
+ HashMap<String, Integer> dstHistory = new HashMap<String, Integer>();
+
+ for (String guid : sourceHistory.keySet()) {
+ if (conn.getNoteTable().exists(guid)) {
+ if (conn.getNoteTable().getNote(guid, false, false, false, false, false).isActive()) {
+ dstHistory.put(guid, sourceHistory.get(guid));
+ }
+ }
+ }
+
+ return dstHistory;
+ }
+
+ /**
+ * Evernoteサムネイルの取得が完了
+ *
+ * @param guid 現在開いているノートのguid
+ */
+ @SuppressWarnings("unused")
+ private void enThumbnailComplete(String guid) {
+ logger.log(logger.HIGH, "Entering RensoNoteList.enThumbnailComplete");
+
+ for (Map.Entry<String, RensoNoteListItem> e : rensoNoteListTrueItems.entrySet()) {
+ // サムネイル取得が完了したノートが現在の連想ノートリストに表示されていたら再描画
+ if (guid.equals(e.getKey())) {
+ e.getValue().repaint();
+ }
+ }
+
+ logger.log(logger.HIGH, "Leaving RensoNoteList.enThumbnailComplete");