- Collection<TabBrowse> tabBrowsers = tabWindows.values();
- Iterator<TabBrowse> tabIterator = tabBrowsers.iterator();
- Collection<Integer> tabIndexes = tabWindows.keySet();
- Iterator<Integer> indexIterator = tabIndexes.iterator();
- List<Integer> closeIndexes = new ArrayList<Integer>(); //イテレータ操作中に中身をいじっちゃダメなので
-
- while (tabIterator.hasNext()) {
- TabBrowse tab = tabIterator.next();
- int index = indexIterator.next();
- String guid = tab.getBrowserWindow().getNote().getGuid();
-
- for(int i = 0; i < noteGUIDs.size(); i++){
- if(guid.equals(noteGUIDs.get(i))){
- closeIndexes.add(index);
- }
- }
- }
-
- for(int i = closeIndexes.size() - 1; i >= 0; i--){
- tabWindowClosing(closeIndexes.get(i));
- }
+ for (String guid : noteGUIDs) {
+ closeTab(guid);
+ }
+ }
+
+ // 対象ノートをタブで開いていたら閉じる
+ private void closeTab(String noteGUID) {
+ List<TabBrowse> closeTabs = new ArrayList<TabBrowse>();
+
+ for (TabBrowse tab : tabWindows.values()) {
+ String guid = tab.getBrowserWindow().getNote().getGuid();
+
+ if (guid.equals(noteGUID)) {
+ closeTabs.add(tab);
+ }
+ }
+
+ for (TabBrowse tab : closeTabs) {
+ tabWindowClosing(tab);
+ }