Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(319)

Side by Side Diff: ash/launcher/launcher_item_delegate_manager.cc

Issue 23606016: Refactor LauncherItemController and LauncherItemDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix for LauncherTest and observing LauncherModel in DelegateManager Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/launcher/launcher_item_delegate_manager.h" 5 #include "ash/launcher/launcher_item_delegate_manager.h"
6 6
7 #include "ash/launcher/launcher_item_delegate.h"
8 #include "ash/launcher/launcher_model.h"
9 #include "ash/shell.h"
10
7 namespace ash { 11 namespace ash {
8 12
9 LauncherItemDelegateManager::LauncherItemDelegateManager() { 13 LauncherItemDelegateManager::LauncherItemDelegateManager()
14 : register_count_(0),
15 unregister_count_(0) {
16 Shell::GetInstance()->launcher_model()->AddObserver(this);
10 } 17 }
11 18
12 LauncherItemDelegateManager::~LauncherItemDelegateManager() { 19 LauncherItemDelegateManager::~LauncherItemDelegateManager() {
20 Shell::GetInstance()->launcher_model()->RemoveObserver(this);
21 LauncherIDToItemDelegateMap::const_iterator iter =
sky 2013/09/11 01:42:57 STLDeleteContainerPairSecondPointers.
simonhong_ 2013/09/11 09:05:26 Done.
22 id_to_item_delegate_map_.begin();
23 for (; iter != id_to_item_delegate_map_.end(); ++iter) {
24 delete iter->second;
25 ++unregister_count_;
sky 2013/09/11 01:42:57 What value does this add beyond the DHECKs you hav
simonhong_ 2013/09/11 09:05:26 It is useless. Removed.
26 }
27
28 // The number of register and unregister must be equal.
29 DCHECK_EQ(register_count_, unregister_count_);
13 } 30 }
14 31
15 void LauncherItemDelegateManager::RegisterLauncherItemDelegate( 32 void LauncherItemDelegateManager::RegisterLauncherItemDelegate(
16 ash::LauncherItemType type, LauncherItemDelegate* item_delegate) { 33 ash::LauncherID id,
17 // When a new |item_delegate| is registered with an exsiting |type|, it will 34 LauncherItemDelegate* item_delegate) {
18 // get overwritten. 35 DCHECK(id_to_item_delegate_map_.find(id) == id_to_item_delegate_map_.end());
19 item_type_to_item_delegate_map_[type] = item_delegate; 36 id_to_item_delegate_map_[id] = item_delegate;
37 ++register_count_;
38 }
39
40 void LauncherItemDelegateManager::UpdateLauncherItemDelegate(
41 ash::LauncherID id,
42 LauncherItemDelegate* item_delegate) {
43 UnregisterLauncherItemDelegate(id);
44 RegisterLauncherItemDelegate(id, item_delegate);
20 } 45 }
21 46
22 LauncherItemDelegate* LauncherItemDelegateManager::GetLauncherItemDelegate( 47 LauncherItemDelegate* LauncherItemDelegateManager::GetLauncherItemDelegate(
23 ash::LauncherItemType item_type) { 48 ash::LauncherID id) {
24 DCHECK(item_type_to_item_delegate_map_.find(item_type) != 49 DCHECK(id_to_item_delegate_map_.find(id) != id_to_item_delegate_map_.end());
25 item_type_to_item_delegate_map_.end()); 50 return id_to_item_delegate_map_[id];
26 return item_type_to_item_delegate_map_[item_type]; 51 }
52
53 void LauncherItemDelegateManager::LauncherItemAdded(int index) {
54 }
55
56 void LauncherItemDelegateManager::LauncherItemRemoved(int index,
57 ash::LauncherID id) {
58 UnregisterLauncherItemDelegate(id);
59 }
60
61 void LauncherItemDelegateManager::LauncherItemMoved(int start_index,
62 int target_index) {
63 }
64
65 void LauncherItemDelegateManager::LauncherItemChanged(
66 int index,
67 const LauncherItem& old_item) {
68 }
69
70 void LauncherItemDelegateManager::LauncherStatusChanged() {
71 }
72
73 void LauncherItemDelegateManager::UnregisterAllLauncherItemDelegateForTest() {
sky 2013/09/11 01:42:57 I don't like this being public. Instead put this l
simonhong_ 2013/09/11 09:05:26 Done.
74 LauncherIDToItemDelegateMap::const_iterator iter =
75 id_to_item_delegate_map_.begin();
76 for (; iter != id_to_item_delegate_map_.end(); ++iter) {
77 delete iter->second;
78 ++unregister_count_;
79 }
80 id_to_item_delegate_map_.clear();
81 }
82
83 void LauncherItemDelegateManager::UnregisterLauncherItemDelegate(
84 ash::LauncherID id) {
85 DCHECK(id_to_item_delegate_map_.find(id) != id_to_item_delegate_map_.end());
86 delete id_to_item_delegate_map_[id];
87 id_to_item_delegate_map_.erase(id);
88 ++unregister_count_;
27 } 89 }
28 90
29 } // namespace ash 91 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698