summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-16 19:57:31 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-16 19:57:31 +0000
commit67c565eee0066426a716b2c5085a7af04f52e73a (patch)
tree9919e990c47bed244400e4d7c651d9f099726d83
parent09c6dec4e18784861660f716d038035be9540601 (diff)
downloadchromium_src-67c565eee0066426a716b2c5085a7af04f52e73a.zip
chromium_src-67c565eee0066426a716b2c5085a7af04f52e73a.tar.gz
chromium_src-67c565eee0066426a716b2c5085a7af04f52e73a.tar.bz2
Move TableModel out of views/ and into app/.
Remove stub implementation in temp_scaffolding_stubs.h Use l10n_util collator helper function in TableModel::Compare Review URL: http://codereview.chromium.org/126184 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18518 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--app/app.gyp3
-rw-r--r--app/table_model.cc (renamed from views/controls/table/table_model.cc)44
-rw-r--r--app/table_model.h (renamed from views/controls/table/table_model.h)13
-rw-r--r--app/table_model_observer.h (renamed from views/controls/table/table_model_observer.h)10
-rw-r--r--chrome/browser/bookmarks/bookmark_table_model.cc5
-rw-r--r--chrome/browser/bookmarks/bookmark_table_model.h15
-rw-r--r--chrome/browser/bookmarks/bookmark_table_model_unittest.cc4
-rw-r--r--chrome/browser/task_manager_win.cc46
-rw-r--r--chrome/browser/views/bookmark_table_view.cc21
-rw-r--r--chrome/browser/views/hung_renderer_view.cc10
-rw-r--r--chrome/browser/views/keyword_editor_view.cc3
-rw-r--r--chrome/browser/views/keyword_editor_view.h8
-rw-r--r--chrome/browser/views/keyword_editor_view_unittest.cc4
-rw-r--r--chrome/browser/views/options/cookies_view.cc30
-rw-r--r--chrome/browser/views/options/exceptions_page_view.cc6
-rw-r--r--chrome/browser/views/options/fonts_page_view.h4
-rw-r--r--chrome/browser/views/options/general_page_view.cc15
-rw-r--r--chrome/browser/views/options/general_page_view.h2
-rw-r--r--chrome/browser/views/options/languages_page_view.cc19
-rw-r--r--chrome/browser/views/options/languages_page_view.h4
-rw-r--r--chrome/browser/views/options/passwords_page_view.cc13
-rw-r--r--chrome/browser/views/options/passwords_page_view.h12
-rw-r--r--chrome/browser/views/shelf_item_dialog.cc16
-rw-r--r--chrome/common/temp_scaffolding_stubs.h17
-rw-r--r--views/controls/table/group_table_view.h2
-rw-r--r--views/controls/table/table_view.cc53
-rw-r--r--views/controls/table/table_view.h6
-rw-r--r--views/controls/table/table_view_unittest.cc13
-rw-r--r--views/views.gyp3
29 files changed, 179 insertions, 222 deletions
diff --git a/app/app.gyp b/app/app.gyp
index 3d1d0a5..e316d41d 100644
--- a/app/app.gyp
+++ b/app/app.gyp
@@ -104,6 +104,9 @@
'theme_provider.h',
'throb_animation.cc',
'throb_animation.h',
+ 'table_model.cc',
+ 'table_model.h',
+ 'table_model_observer.h',
],
'direct_dependent_settings': {
'include_dirs': [
diff --git a/views/controls/table/table_model.cc b/app/table_model.cc
index 7e1dd0e..0f35905 100644
--- a/views/controls/table/table_model.cc
+++ b/app/table_model.cc
@@ -2,11 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "views/controls/table/table_model.h"
+#include "app/table_model.h"
#include "app/l10n_util.h"
+#include "third_party/skia/include/core/SkBitmap.h"
-namespace views {
+// TableColumn -----------------------------------------------------------------
TableColumn::TableColumn()
: id(0),
@@ -64,5 +65,42 @@ TableColumn::TableColumn(int id, Alignment alignment, int width, float percent)
title = l10n_util::GetString(id);
}
-} // namespace views
+// TableModel -----------------------------------------------------------------
+// Used for sorting.
+static Collator* collator = NULL;
+
+SkBitmap TableModel::GetIcon(int row) {
+ return SkBitmap();
+}
+
+int TableModel::CompareValues(int row1, int row2, int column_id) {
+ DCHECK(row1 >= 0 && row1 < RowCount() &&
+ row2 >= 0 && row2 < RowCount());
+ std::wstring value1 = GetText(row1, column_id);
+ std::wstring value2 = GetText(row2, column_id);
+ Collator* collator = GetCollator();
+
+ if (collator)
+ return l10n_util::CompareStringWithCollator(collator, value1, value2);
+
+ NOTREACHED();
+ return 0;
+}
+
+Collator* TableModel::GetCollator() {
+ if (!collator) {
+ UErrorCode create_status = U_ZERO_ERROR;
+ collator = Collator::createInstance(create_status);
+ if (!U_SUCCESS(create_status)) {
+ collator = NULL;
+ NOTREACHED();
+ }
+ }
+ return collator;
+}
+
+void TableModel::ClearCollator() {
+ delete collator;
+ collator = NULL;
+}
diff --git a/views/controls/table/table_model.h b/app/table_model.h
index 5c377c7..ba7043e 100644
--- a/views/controls/table/table_model.h
+++ b/app/table_model.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef VIEWS_CONTROLS_TABLE_TABLE_MODEL_H_
-#define VIEWS_CONTROLS_TABLE_TABLE_MODEL_H_
+#ifndef APP_TABLE_MODEL_H_
+#define APP_TABLE_MODEL_H_
#include <string>
#include <vector>
@@ -13,8 +13,6 @@
class SkBitmap;
-namespace views {
-
class TableModelObserver;
// The model driving the TableView.
@@ -92,6 +90,9 @@ class TableModel {
// comparison.
virtual int CompareValues(int row1, int row2, int column_id);
+ // Reset the collator.
+ void ClearCollator();
+
protected:
// Returns the collator used by CompareValues.
Collator* GetCollator();
@@ -149,6 +150,4 @@ struct TableColumn {
bool sortable;
};
-} // namespace views
-
-#endif // VIEWS_CONTROLS_TABLE_TABLE_MODEL_H_
+#endif // APP_TABLE_MODEL_H_
diff --git a/views/controls/table/table_model_observer.h b/app/table_model_observer.h
index b968a9f..fcd50f4 100644
--- a/views/controls/table/table_model_observer.h
+++ b/app/table_model_observer.h
@@ -2,10 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef VIEWS_CONTROL_TABLE_TABLE_MODEL_OBSERVER_H_
-#define VIEWS_CONTROL_TABLE_TABLE_MODEL_OBSERVER_H_
-
-namespace views {
+#ifndef APP_TABLE_MODEL_OBSERVER_H_
+#define APP_TABLE_MODEL_OBSERVER_H_
// Observer for a TableModel. Anytime the model changes, it must notify its
// observer.
@@ -24,6 +22,4 @@ class TableModelObserver {
virtual void OnItemsRemoved(int start, int length) = 0;
};
-} // namespace views
-
-#endif // VIEWS_CONTROL_TABLE_TABLE_MODEL_OBSERVER_H_
+#endif // APP_TABLE_MODEL_OBSERVER_H_
diff --git a/chrome/browser/bookmarks/bookmark_table_model.cc b/chrome/browser/bookmarks/bookmark_table_model.cc
index 4ff6a57..733c99e 100644
--- a/chrome/browser/bookmarks/bookmark_table_model.cc
+++ b/chrome/browser/bookmarks/bookmark_table_model.cc
@@ -8,6 +8,7 @@
#include "app/l10n_util.h"
#include "app/resource_bundle.h"
+#include "app/table_model_observer.h"
#include "base/string_util.h"
#include "base/time_format.h"
#include "chrome/browser/bookmarks/bookmark_utils.h"
@@ -21,10 +22,6 @@
#include "net/base/escape.h"
#include "net/base/net_util.h"
-#if defined(TOOLKIT_VIEWS)
-#include "views/controls/table/table_model_observer.h"
-#endif
-
namespace {
// Number of bookmarks shown in recently bookmarked.
diff --git a/chrome/browser/bookmarks/bookmark_table_model.h b/chrome/browser/bookmarks/bookmark_table_model.h
index db7051f..7dd7f9e 100644
--- a/chrome/browser/bookmarks/bookmark_table_model.h
+++ b/chrome/browser/bookmarks/bookmark_table_model.h
@@ -5,21 +5,16 @@
#ifndef CHROME_BROWSER_BOOKMARKS_BOOKMARK_TABLE_MODEL_H_
#define CHROME_BROWSER_BOOKMARKS_BOOKMARK_TABLE_MODEL_H_
+#include "app/table_model.h"
#include "build/build_config.h"
#include "chrome/browser/bookmarks/bookmark_model.h"
-#if defined(TOOLKIT_VIEWS)
-#include "views/controls/table/table_model.h"
-#else
-#include "chrome/common/temp_scaffolding_stubs.h"
-#endif
-
// BookmarkTableModel provides a view of the BookmarkModel as a TableModel.
// Three variations are provided:
// . Recently created bookmarks.
// . The children of a particular folder.
// . All bookmarks matching the specified text.
-class BookmarkTableModel : public views::TableModel,
+class BookmarkTableModel : public TableModel,
public BookmarkModelObserver {
public:
// Methods for creating the various BookmarkTableModels. Ownership passes
@@ -41,7 +36,7 @@ class BookmarkTableModel : public views::TableModel,
// TableModel methods.
virtual std::wstring GetText(int row, int column_id);
virtual SkBitmap GetIcon(int row);
- virtual void SetObserver(views::TableModelObserver* observer) {
+ virtual void SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -63,14 +58,14 @@ class BookmarkTableModel : public views::TableModel,
BookmarkModel* model() const { return model_; }
protected:
- views::TableModelObserver* observer() const { return observer_; }
+ TableModelObserver* observer() const { return observer_; }
private:
// Builds the path shown in the path column for the specified node.
void BuildPath(BookmarkNode* node, std::wstring* path);
BookmarkModel* model_;
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
DISALLOW_COPY_AND_ASSIGN(BookmarkTableModel);
};
diff --git a/chrome/browser/bookmarks/bookmark_table_model_unittest.cc b/chrome/browser/bookmarks/bookmark_table_model_unittest.cc
index 7add6a9..9003256 100644
--- a/chrome/browser/bookmarks/bookmark_table_model_unittest.cc
+++ b/chrome/browser/bookmarks/bookmark_table_model_unittest.cc
@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "app/table_model_observer.h"
#include "base/string_util.h"
#include "base/time.h"
#include "chrome/browser/bookmarks/bookmark_table_model.h"
#include "chrome/test/testing_profile.h"
#include "grit/generated_resources.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "views/controls/table/table_model_observer.h"
using base::Time;
using base::TimeDelta;
@@ -23,7 +23,7 @@ using base::TimeDelta;
// f2
// url3 (t0 + 1)
class BookmarkTableModelTest : public testing::Test,
- public views::TableModelObserver {
+ public TableModelObserver {
public:
BookmarkTableModelTest()
: url1_("http://1"),
diff --git a/chrome/browser/task_manager_win.cc b/chrome/browser/task_manager_win.cc
index 671c2ea..42b835a 100644
--- a/chrome/browser/task_manager_win.cc
+++ b/chrome/browser/task_manager_win.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/task_manager.h"
#include "app/l10n_util.h"
+#include "app/table_model_observer.h"
#include "base/stats_table.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/browser_list.h"
@@ -59,7 +60,7 @@ class TaskManagerTableModel : public views::GroupTableModel,
std::wstring GetText(int row, int column);
SkBitmap GetIcon(int row);
void GetGroupRangeForItem(int item, views::GroupRange* range);
- void SetObserver(views::TableModelObserver* observer);
+ void SetObserver(TableModelObserver* observer);
virtual int CompareValues(int row1, int row2, int column_id);
// TaskManagerModelObserver.
@@ -70,7 +71,7 @@ class TaskManagerTableModel : public views::GroupTableModel,
private:
const TaskManagerModel* model_;
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
};
int TaskManagerTableModel::RowCount() {
@@ -129,7 +130,7 @@ void TaskManagerTableModel::GetGroupRangeForItem(int item,
range->length = range_pair.second;
}
-void TaskManagerTableModel::SetObserver(views::TableModelObserver* observer) {
+void TaskManagerTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -243,7 +244,7 @@ class TaskManagerViewImpl : public TaskManagerView,
TaskManagerModel* model_;
// all possible columns, not necessarily visible
- std::vector<views::TableColumn> columns_;
+ std::vector<TableColumn> columns_;
scoped_ptr<TaskManagerTableModel> table_model_;
@@ -276,26 +277,26 @@ TaskManagerViewImpl::~TaskManagerViewImpl() {
void TaskManagerViewImpl::Init() {
table_model_.reset(new TaskManagerTableModel(model_));
- columns_.push_back(views::TableColumn(IDS_TASK_MANAGER_PAGE_COLUMN,
- views::TableColumn::LEFT, -1, 1));
+ columns_.push_back(TableColumn(IDS_TASK_MANAGER_PAGE_COLUMN,
+ TableColumn::LEFT, -1, 1));
columns_.back().sortable = true;
- columns_.push_back(views::TableColumn(IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN,
- views::TableColumn::RIGHT, -1, 0));
+ columns_.push_back(TableColumn(IDS_TASK_MANAGER_PHYSICAL_MEM_COLUMN,
+ TableColumn::RIGHT, -1, 0));
columns_.back().sortable = true;
- columns_.push_back(views::TableColumn(IDS_TASK_MANAGER_SHARED_MEM_COLUMN,
- views::TableColumn::RIGHT, -1, 0));
+ columns_.push_back(TableColumn(IDS_TASK_MANAGER_SHARED_MEM_COLUMN,
+ TableColumn::RIGHT, -1, 0));
columns_.back().sortable = true;
- columns_.push_back(views::TableColumn(IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN,
- views::TableColumn::RIGHT, -1, 0));
+ columns_.push_back(TableColumn(IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN,
+ TableColumn::RIGHT, -1, 0));
columns_.back().sortable = true;
- columns_.push_back(views::TableColumn(IDS_TASK_MANAGER_CPU_COLUMN,
- views::TableColumn::RIGHT, -1, 0));
+ columns_.push_back(TableColumn(IDS_TASK_MANAGER_CPU_COLUMN,
+ TableColumn::RIGHT, -1, 0));
columns_.back().sortable = true;
- columns_.push_back(views::TableColumn(IDS_TASK_MANAGER_NET_COLUMN,
- views::TableColumn::RIGHT, -1, 0));
+ columns_.push_back(TableColumn(IDS_TASK_MANAGER_NET_COLUMN,
+ TableColumn::RIGHT, -1, 0));
columns_.back().sortable = true;
- columns_.push_back(views::TableColumn(IDS_TASK_MANAGER_PROCESS_ID_COLUMN,
- views::TableColumn::RIGHT, -1, 0));
+ columns_.push_back(TableColumn(IDS_TASK_MANAGER_PROCESS_ID_COLUMN,
+ TableColumn::RIGHT, -1, 0));
columns_.back().sortable = true;
tab_table_ = new views::GroupTableView(table_model_.get(), columns_,
@@ -309,8 +310,8 @@ void TaskManagerViewImpl::Init() {
tab_table_->SetColumnVisibility(IDS_TASK_MANAGER_PRIVATE_MEM_COLUMN, false);
UpdateStatsCounters();
- views::TableColumn col(kGoatsTeleportedColumn, L"Goats Teleported",
- views::TableColumn::RIGHT, -1, 0);
+ TableColumn col(kGoatsTeleportedColumn, L"Goats Teleported",
+ TableColumn::RIGHT, -1, 0);
col.sortable = true;
columns_.push_back(col);
tab_table_->AddColumn(col);
@@ -341,8 +342,7 @@ void TaskManagerViewImpl::UpdateStatsCounters() {
// stat names not in the string table would be filtered out.
// TODO(erikkay): Width is hard-coded right now, so many column
// names are clipped.
- views::TableColumn col(i, ASCIIToWide(row), views::TableColumn::RIGHT,
- 90, 0);
+ TableColumn col(i, ASCIIToWide(row), TableColumn::RIGHT, 90, 0);
col.sortable = true;
columns_.push_back(col);
tab_table_->AddColumn(col);
@@ -562,7 +562,7 @@ void TaskManagerViewImpl::ShowContextMenu(views::View* source,
UpdateStatsCounters();
scoped_ptr<views::Menu> menu(views::Menu::Create(
this, views::Menu::TOPLEFT, source->GetWidget()->GetNativeView()));
- for (std::vector<views::TableColumn>::iterator i =
+ for (std::vector<TableColumn>::iterator i =
columns_.begin(); i != columns_.end(); ++i) {
menu->AppendMenuItem(i->id, i->title, views::Menu::CHECKBOX);
}
diff --git a/chrome/browser/views/bookmark_table_view.cc b/chrome/browser/views/bookmark_table_view.cc
index 8a74777..7705d1b 100644
--- a/chrome/browser/views/bookmark_table_view.cc
+++ b/chrome/browser/views/bookmark_table_view.cc
@@ -28,7 +28,7 @@ namespace {
// Height of the drop indicator used when dropping between rows.
const int kDropHighlightHeight = 2;
-int GetWidthOfColumn(const std::vector<views::TableColumn>& columns,
+int GetWidthOfColumn(const std::vector<TableColumn>& columns,
const std::vector<int> widths,
int column_id) {
for (size_t i = 0; i < columns.size(); ++i) {
@@ -47,7 +47,7 @@ void BookmarkTableView::DropInfo::Scrolled() {
BookmarkTableView::BookmarkTableView(Profile* profile,
BookmarkTableModel* model)
- : views::TableView(model, std::vector<views::TableColumn>(),
+ : views::TableView(model, std::vector<TableColumn>(),
views::ICON_AND_TEXT, false, true, true),
profile_(profile),
show_path_column_(false) {
@@ -362,15 +362,14 @@ RECT BookmarkTableView::GetDropBetweenHighlightRect(int index) {
void BookmarkTableView::UpdateColumns() {
PrefService* prefs = profile_->GetPrefs();
- views::TableColumn name_column =
- views::TableColumn(IDS_BOOKMARK_TABLE_TITLE, views::TableColumn::LEFT,
- -1);
- views::TableColumn url_column =
- views::TableColumn(IDS_BOOKMARK_TABLE_URL, views::TableColumn::LEFT, -1);
- views::TableColumn path_column =
- views::TableColumn(IDS_BOOKMARK_TABLE_PATH, views::TableColumn::LEFT, -1);
-
- std::vector<views::TableColumn> columns;
+ TableColumn name_column =
+ TableColumn(IDS_BOOKMARK_TABLE_TITLE, TableColumn::LEFT, -1);
+ TableColumn url_column =
+ TableColumn(IDS_BOOKMARK_TABLE_URL, TableColumn::LEFT, -1);
+ TableColumn path_column =
+ TableColumn(IDS_BOOKMARK_TABLE_PATH, TableColumn::LEFT, -1);
+
+ std::vector<TableColumn> columns;
if (show_path_column_) {
int name_width = -1;
int url_width = -1;
diff --git a/chrome/browser/views/hung_renderer_view.cc b/chrome/browser/views/hung_renderer_view.cc
index de96a8e..606a42c 100644
--- a/chrome/browser/views/hung_renderer_view.cc
+++ b/chrome/browser/views/hung_renderer_view.cc
@@ -48,14 +48,14 @@ class HungPagesTableModel : public views::GroupTableModel {
virtual int RowCount();
virtual std::wstring GetText(int row, int column_id);
virtual SkBitmap GetIcon(int row);
- virtual void SetObserver(views::TableModelObserver* observer);
+ virtual void SetObserver(TableModelObserver* observer);
virtual void GetGroupRangeForItem(int item, views::GroupRange* range);
private:
typedef std::vector<TabContents*> TabContentsVector;
TabContentsVector tab_contentses_;
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
DISALLOW_EVIL_CONSTRUCTORS(HungPagesTableModel);
};
@@ -104,7 +104,7 @@ SkBitmap HungPagesTableModel::GetIcon(int row) {
return tab_contentses_.at(row)->GetFavIcon();
}
-void HungPagesTableModel::SetObserver(views::TableModelObserver* observer) {
+void HungPagesTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -343,8 +343,8 @@ void HungRendererDialogView::Init() {
info_label_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
hung_pages_table_model_.reset(new HungPagesTableModel);
- std::vector<views::TableColumn> columns;
- columns.push_back(views::TableColumn());
+ std::vector<TableColumn> columns;
+ columns.push_back(TableColumn());
hung_pages_table_ = new views::GroupTableView(
hung_pages_table_model_.get(), columns, views::ICON_AND_TEXT, true,
false, true);
diff --git a/chrome/browser/views/keyword_editor_view.cc b/chrome/browser/views/keyword_editor_view.cc
index d21b314..b5c1e56 100644
--- a/chrome/browser/views/keyword_editor_view.cc
+++ b/chrome/browser/views/keyword_editor_view.cc
@@ -37,7 +37,6 @@
using views::GridLayout;
using views::NativeButton;
-using views::TableColumn;
// Group IDs used by TemplateURLTableModel.
static const int kMainGroupID = 0;
@@ -237,7 +236,7 @@ SkBitmap TemplateURLTableModel::GetIcon(int row) {
return entries_[row]->GetIcon();
}
-void TemplateURLTableModel::SetObserver(views::TableModelObserver* observer) {
+void TemplateURLTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
diff --git a/chrome/browser/views/keyword_editor_view.h b/chrome/browser/views/keyword_editor_view.h
index 8b093c7..1b70641 100644
--- a/chrome/browser/views/keyword_editor_view.h
+++ b/chrome/browser/views/keyword_editor_view.h
@@ -8,9 +8,9 @@
#include <Windows.h>
#include <map>
+#include "app/table_model.h"
#include "chrome/browser/search_engines/template_url_model.h"
#include "views/controls/button/button.h"
-#include "views/controls/table/table_model.h"
#include "views/controls/table/table_view_observer.h"
#include "views/view.h"
#include "views/window/dialog_delegate.h"
@@ -40,7 +40,7 @@ class TemplateURLTableModel;
// the favicon. The entries in the model are sorted such that non-generated
// appear first (grouped together) and are followed by generated keywords.
-class TemplateURLTableModel : public views::TableModel {
+class TemplateURLTableModel : public TableModel {
public:
explicit TemplateURLTableModel(TemplateURLModel* template_url_model);
@@ -54,7 +54,7 @@ class TemplateURLTableModel : public views::TableModel {
virtual int RowCount();
virtual std::wstring GetText(int row, int column);
virtual SkBitmap GetIcon(int row);
- virtual void SetObserver(views::TableModelObserver* observer);
+ virtual void SetObserver(TableModelObserver* observer);
virtual bool HasGroups();
virtual Groups GetGroups();
virtual int GetGroupID(int row);
@@ -96,7 +96,7 @@ class TemplateURLTableModel : public views::TableModel {
// Notification that a model entry has fetched its icon.
void FavIconAvailable(ModelEntry* entry);
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
// The entries.
std::vector<ModelEntry*> entries_;
diff --git a/chrome/browser/views/keyword_editor_view_unittest.cc b/chrome/browser/views/keyword_editor_view_unittest.cc
index aeefc83..c23ee4e 100644
--- a/chrome/browser/views/keyword_editor_view_unittest.cc
+++ b/chrome/browser/views/keyword_editor_view_unittest.cc
@@ -2,18 +2,18 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "app/table_model_observer.h"
#include "chrome/browser/profile.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_model.h"
#include "chrome/browser/views/keyword_editor_view.h"
#include "chrome/test/testing_profile.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "views/controls/table/table_model_observer.h"
// Base class for keyword editor tests. Creates a profile containing an
// empty TemplateURLModel.
class KeywordEditorViewTest : public testing::Test,
- public views::TableModelObserver {
+ public TableModelObserver {
public:
virtual void SetUp() {
model_changed_count_ = items_changed_count_ = added_count_ =
diff --git a/chrome/browser/views/options/cookies_view.cc b/chrome/browser/views/options/cookies_view.cc
index 30b1e9d..ce410e8 100644
--- a/chrome/browser/views/options/cookies_view.cc
+++ b/chrome/browser/views/options/cookies_view.cc
@@ -10,6 +10,7 @@
#include "app/gfx/color_utils.h"
#include "app/l10n_util.h"
#include "app/resource_bundle.h"
+#include "app/table_model.h"
#include "base/message_loop.h"
#include "base/string_util.h"
#include "base/time_format.h"
@@ -23,7 +24,6 @@
#include "views/grid_layout.h"
#include "views/controls/label.h"
#include "views/controls/button/native_button.h"
-#include "views/controls/table/table_model.h"
#include "views/controls/table/table_view.h"
#include "views/controls/textfield/textfield.h"
#include "views/standard_layout.h"
@@ -37,7 +37,7 @@ static const int kSearchFilterDelayMs = 500;
///////////////////////////////////////////////////////////////////////////////
// CookiesTableModel
-class CookiesTableModel : public views::TableModel {
+class CookiesTableModel : public TableModel {
public:
explicit CookiesTableModel(Profile* profile);
virtual ~CookiesTableModel() {}
@@ -50,11 +50,11 @@ class CookiesTableModel : public views::TableModel {
void RemoveCookies(int start_index, int remove_count);
void RemoveAllShownCookies();
- // views::TableModel implementation:
+ // TableModel implementation:
virtual int RowCount();
virtual std::wstring GetText(int row, int column_id);
virtual SkBitmap GetIcon(int row);
- virtual void SetObserver(views::TableModelObserver* observer);
+ virtual void SetObserver(TableModelObserver* observer);
virtual int CompareValues(int row1, int row2, int column_id);
// Filter the cookies to only display matched results.
@@ -74,7 +74,7 @@ class CookiesTableModel : public views::TableModel {
CookieList all_cookies_;
CookiePtrList shown_cookies_;
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
DISALLOW_COPY_AND_ASSIGN(CookiesTableModel);
};
@@ -138,7 +138,7 @@ void CookiesTableModel::RemoveAllShownCookies() {
}
///////////////////////////////////////////////////////////////////////////////
-// CookiesTableModel, views::TableModel implementation:
+// CookiesTableModel, TableModel implementation:
int CookiesTableModel::RowCount() {
return static_cast<int>(shown_cookies_.size());
@@ -180,7 +180,7 @@ SkBitmap CookiesTableModel::GetIcon(int row) {
return *icon;
}
-void CookiesTableModel::SetObserver(views::TableModelObserver* observer) {
+void CookiesTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -255,7 +255,7 @@ void CookiesTableModel::UpdateSearchResults(const std::wstring& filter) {
class CookiesTableView : public views::TableView {
public:
CookiesTableView(CookiesTableModel* cookies_model,
- std::vector<views::TableColumn> columns);
+ std::vector<TableColumn> columns);
virtual ~CookiesTableView() {}
// Removes the cookies associated with the selected rows in the TableView.
@@ -270,7 +270,7 @@ class CookiesTableView : public views::TableView {
CookiesTableView::CookiesTableView(
CookiesTableModel* cookies_model,
- std::vector<views::TableColumn> columns)
+ std::vector<TableColumn> columns)
: views::TableView(cookies_model, columns, views::ICON_AND_TEXT, false,
true, true),
cookies_model_(cookies_model) {
@@ -623,7 +623,7 @@ void CookiesView::ContentsChanged(views::Textfield* sender,
bool CookiesView::HandleKeystroke(views::Textfield* sender,
const views::Textfield::Keystroke& key) {
- if (views::Textfield::IsKeystrokeEscape(key)) {
+ if (views::Textfield::IsKeystrokeEscape(key)) {
ResetSearchQuery();
} else if (views::Textfield::IsKeystrokeEnter(key)) {
search_update_factory_.RevokeAll();
@@ -711,12 +711,12 @@ void CookiesView::Init() {
cookies_table_model_.reset(new CookiesTableModel(profile_));
info_view_ = new CookieInfoView;
- std::vector<views::TableColumn> columns;
- columns.push_back(views::TableColumn(IDS_COOKIES_DOMAIN_COLUMN_HEADER,
- views::TableColumn::LEFT, 200, 0.5f));
+ std::vector<TableColumn> columns;
+ columns.push_back(TableColumn(IDS_COOKIES_DOMAIN_COLUMN_HEADER,
+ TableColumn::LEFT, 200, 0.5f));
columns.back().sortable = true;
- columns.push_back(views::TableColumn(IDS_COOKIES_NAME_COLUMN_HEADER,
- views::TableColumn::LEFT, 150, 0.5f));
+ columns.push_back(TableColumn(IDS_COOKIES_NAME_COLUMN_HEADER,
+ TableColumn::LEFT, 150, 0.5f));
columns.back().sortable = true;
cookies_table_ = new CookiesTableView(cookies_table_model_.get(), columns);
cookies_table_->SetObserver(this);
diff --git a/chrome/browser/views/options/exceptions_page_view.cc b/chrome/browser/views/options/exceptions_page_view.cc
index f9d77c9..52de9eb 100644
--- a/chrome/browser/views/options/exceptions_page_view.cc
+++ b/chrome/browser/views/options/exceptions_page_view.cc
@@ -168,10 +168,10 @@ void ExceptionsPageView::SetupTable() {
// Creates the different columns for the table.
// The float resize values are the result of much tinkering.
- std::vector<views::TableColumn> columns;
- columns.push_back(views::TableColumn(
+ std::vector<TableColumn> columns;
+ columns.push_back(TableColumn(
IDS_PASSWORDS_PAGE_VIEW_SITE_COLUMN,
- views::TableColumn::LEFT, -1, 0.55f));
+ TableColumn::LEFT, -1, 0.55f));
columns.back().sortable = true;
table_view_ = new views::TableView(&table_model_, columns, views::TEXT_ONLY,
true, true, true);
diff --git a/chrome/browser/views/options/fonts_page_view.h b/chrome/browser/views/options/fonts_page_view.h
index eec242a..c92df20 100644
--- a/chrome/browser/views/options/fonts_page_view.h
+++ b/chrome/browser/views/options/fonts_page_view.h
@@ -17,12 +17,12 @@ namespace views {
class GroupboxView;
class Label;
class NativeButton;
-class TableModel;
class TableView;
}
-class FontDisplayView;
class DefaultEncodingComboboxModel;
+class FontDisplayView;
+class TableModel;
///////////////////////////////////////////////////////////////////////////////
// FontsPageView
diff --git a/chrome/browser/views/options/general_page_view.cc b/chrome/browser/views/options/general_page_view.cc
index 5d08722..dcf579f 100644
--- a/chrome/browser/views/options/general_page_view.cc
+++ b/chrome/browser/views/options/general_page_view.cc
@@ -171,7 +171,7 @@ void GeneralPageView::DefaultBrowserWorker::UpdateUI(bool is_default) {
// CustomHomePagesTableModel is the model for the TableView showing the list
// of pages the user wants opened on startup.
-class CustomHomePagesTableModel : public views::TableModel {
+class CustomHomePagesTableModel : public TableModel {
public:
explicit CustomHomePagesTableModel(Profile* profile);
virtual ~CustomHomePagesTableModel() {}
@@ -188,11 +188,11 @@ class CustomHomePagesTableModel : public views::TableModel {
// Returns the set of urls this model contains.
std::vector<GURL> GetURLs();
- // views::TableModel overrides:
+ // TableModel overrides:
virtual int RowCount();
virtual std::wstring GetText(int row, int column_id);
virtual SkBitmap GetIcon(int row);
- virtual void SetObserver(views::TableModelObserver* observer);
+ virtual void SetObserver(TableModelObserver* observer);
private:
// Each item in the model is represented as an Entry. Entry stores the URL
@@ -236,7 +236,7 @@ class CustomHomePagesTableModel : public views::TableModel {
// Profile used to load icons.
Profile* profile_;
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
// Used in loading favicons.
CancelableRequestConsumer fav_icon_consumer_;
@@ -317,8 +317,7 @@ SkBitmap CustomHomePagesTableModel::GetIcon(int row) {
return default_favicon_;
}
-void CustomHomePagesTableModel::SetObserver(
- views::TableModelObserver* observer) {
+void CustomHomePagesTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -798,8 +797,8 @@ void GeneralPageView::InitStartupGroup() {
startup_custom_pages_table_model_.reset(
new CustomHomePagesTableModel(profile()));
- std::vector<views::TableColumn> columns;
- columns.push_back(views::TableColumn());
+ std::vector<TableColumn> columns;
+ columns.push_back(TableColumn());
startup_custom_pages_table_ = new views::TableView(
startup_custom_pages_table_model_.get(), columns,
views::ICON_AND_TEXT, true, false, true);
diff --git a/chrome/browser/views/options/general_page_view.h b/chrome/browser/views/options/general_page_view.h
index 3dcc66c..3faa421 100644
--- a/chrome/browser/views/options/general_page_view.h
+++ b/chrome/browser/views/options/general_page_view.h
@@ -19,13 +19,13 @@ class GroupboxView;
class Label;
class NativeButton;
class RadioButton;
-class TableModel;
class TableView;
class Textfield;
}
class CustomHomePagesTableModel;
class OptionsGroupView;
class SearchEngineListModel;
+class TableModel;
///////////////////////////////////////////////////////////////////////////////
// GeneralPageView
diff --git a/chrome/browser/views/options/languages_page_view.cc b/chrome/browser/views/options/languages_page_view.cc
index d402b8e..ac08680 100644
--- a/chrome/browser/views/options/languages_page_view.cc
+++ b/chrome/browser/views/options/languages_page_view.cc
@@ -12,6 +12,8 @@
#include "app/gfx/font.h"
#include "app/l10n_util.h"
#include "app/resource_bundle.h"
+#include "app/table_model.h"
+#include "app/table_model_observer.h"
#include "base/command_line.h"
#include "base/file_util.h"
#include "base/string_util.h"
@@ -32,8 +34,6 @@
#include "unicode/uloc.h"
#include "views/controls/button/radio_button.h"
#include "views/controls/tabbed_pane.h"
-#include "views/controls/table/table_model.h"
-#include "views/controls/table/table_model_observer.h"
#include "views/controls/table/table_view.h"
#include "views/grid_layout.h"
#include "views/standard_layout.h"
@@ -314,7 +314,7 @@ void AddLanguageWindowView::Init() {
AddChildView(accept_language_combobox_);
}
-class LanguageOrderTableModel : public views::TableModel {
+class LanguageOrderTableModel : public TableModel {
public:
LanguageOrderTableModel();
@@ -340,10 +340,10 @@ class LanguageOrderTableModel : public views::TableModel {
// Returns the set of languagess this model contains.
std::string GetLanguageList() { return VectorToList(languages_); }
- // views::TableModel overrides:
+ // TableModel overrides:
virtual int RowCount();
virtual std::wstring GetText(int row, int column_id);
- virtual void SetObserver(views::TableModelObserver* observer);
+ virtual void SetObserver(TableModelObserver* observer);
private:
// This method converts a comma separated list to a vector of strings.
@@ -357,7 +357,7 @@ class LanguageOrderTableModel : public views::TableModel {
std::vector<std::string> languages_;
std::string comma_separated_language_list_;
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
DISALLOW_COPY_AND_ASSIGN(LanguageOrderTableModel);
};
@@ -375,8 +375,7 @@ void LanguageOrderTableModel::SetAcceptLanguagesString(
}
}
-void LanguageOrderTableModel::SetObserver(
- views::TableModelObserver* observer) {
+void LanguageOrderTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -569,8 +568,8 @@ void LanguagesPageView::InitControlLayout() {
layout->AddPaddingRow(0, kRelatedControlVerticalSpacing);
// Add two columns - for table, and for button stack.
- std::vector<views::TableColumn> columns;
- columns.push_back(views::TableColumn());
+ std::vector<TableColumn> columns;
+ columns.push_back(TableColumn());
language_order_table_model_.reset(new LanguageOrderTableModel);
language_order_table_ = new views::TableView(
language_order_table_model_.get(), columns,
diff --git a/chrome/browser/views/options/languages_page_view.h b/chrome/browser/views/options/languages_page_view.h
index 168d67e..a16203b 100644
--- a/chrome/browser/views/options/languages_page_view.h
+++ b/chrome/browser/views/options/languages_page_view.h
@@ -16,13 +16,13 @@ namespace views {
class Checkbox;
class Label;
class NativeButton;
-class TableModel;
class TableView;
}
+class AddLanguageView;
class LanguageComboboxModel;
class LanguageOrderTableModel;
-class AddLanguageView;
+class TableModel;
///////////////////////////////////////////////////////////////////////////////
// LanguagesPageView
diff --git a/chrome/browser/views/options/passwords_page_view.cc b/chrome/browser/views/options/passwords_page_view.cc
index bc73703..e7337cb 100644
--- a/chrome/browser/views/options/passwords_page_view.cc
+++ b/chrome/browser/views/options/passwords_page_view.cc
@@ -97,8 +97,7 @@ int PasswordsTableModel::CompareValues(int row1, int row2,
return TableModel::CompareValues(row1, row2, column_id);
}
-void PasswordsTableModel::SetObserver(
- views::TableModelObserver* observer) {
+void PasswordsTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -306,12 +305,12 @@ void PasswordsPageView::SetupTable() {
// Creates the different columns for the table.
// The float resize values are the result of much tinkering.
- std::vector<views::TableColumn> columns;
- columns.push_back(views::TableColumn(IDS_PASSWORDS_PAGE_VIEW_SITE_COLUMN,
- views::TableColumn::LEFT, -1, 0.55f));
+ std::vector<TableColumn> columns;
+ columns.push_back(TableColumn(IDS_PASSWORDS_PAGE_VIEW_SITE_COLUMN,
+ TableColumn::LEFT, -1, 0.55f));
columns.back().sortable = true;
- columns.push_back(views::TableColumn(
- IDS_PASSWORDS_PAGE_VIEW_USERNAME_COLUMN, views::TableColumn::LEFT,
+ columns.push_back(TableColumn(
+ IDS_PASSWORDS_PAGE_VIEW_USERNAME_COLUMN, TableColumn::LEFT,
-1, 0.37f));
columns.back().sortable = true;
table_view_ = new views::TableView(&table_model_, columns, views::TEXT_ONLY,
diff --git a/chrome/browser/views/options/passwords_page_view.h b/chrome/browser/views/options/passwords_page_view.h
index 907ffb4..7238f4c 100644
--- a/chrome/browser/views/options/passwords_page_view.h
+++ b/chrome/browser/views/options/passwords_page_view.h
@@ -8,6 +8,7 @@
#include <vector>
#include "app/gfx/text_elider.h"
+#include "app/table_model.h"
#include "base/scoped_ptr.h"
#include "base/stl_util-inl.h"
#include "chrome/browser/views/options/options_page_view.h"
@@ -15,7 +16,6 @@
#include "views/controls/button/native_button.h"
#include "views/controls/label.h"
#include "views/controls/table/table_view.h"
-#include "views/controls/table/table_model.h"
#include "views/controls/table/table_view_observer.h"
#include "views/window/dialog_delegate.h"
#include "views/window/window.h"
@@ -29,9 +29,9 @@ class Profile;
// allow the container view of TableView(i.e. PasswordsPageView and
// ExceptionsPageView), to be notified of row count changes directly
// from the TableModel. We have two different observers in
-// PasswordsTableModel, namely views::TableModelObserver and
+// PasswordsTableModel, namely TableModelObserver and
// PasswordsTableModelObserver, rather than adding this event to
-// views::TableModelObserver because only container view of
+// TableModelObserver because only container view of
// PasswordsTableModel cares about this event.
class PasswordsTableModelObserver {
public:
@@ -60,7 +60,7 @@ class MultiLabelButtons : public views::NativeButton {
///////////////////////////////////////////////////////////////////////////////
// PasswordsTableModel
-class PasswordsTableModel : public views::TableModel,
+class PasswordsTableModel : public TableModel,
public WebDataServiceConsumer {
public:
explicit PasswordsTableModel(Profile* profile);
@@ -70,7 +70,7 @@ class PasswordsTableModel : public views::TableModel,
virtual int RowCount();
virtual std::wstring GetText(int row, int column);
virtual int CompareValues(int row1, int row2, int column_id);
- virtual void SetObserver(views::TableModelObserver* observer);
+ virtual void SetObserver(TableModelObserver* observer);
// Delete the PasswordForm at specified row from the database (and remove
// from view).
@@ -116,7 +116,7 @@ class PasswordsTableModel : public views::TableModel,
}
// The TableView observing this model.
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
// Dispatching row count events specific to this password manager table model
// to this observer.
diff --git a/chrome/browser/views/shelf_item_dialog.cc b/chrome/browser/views/shelf_item_dialog.cc
index 7212c1d..ade3be7 100644
--- a/chrome/browser/views/shelf_item_dialog.cc
+++ b/chrome/browser/views/shelf_item_dialog.cc
@@ -7,6 +7,8 @@
#include "app/gfx/text_elider.h"
#include "app/l10n_util.h"
#include "app/resource_bundle.h"
+#include "app/table_model.h"
+#include "app/table_model_observer.h"
#include "base/gfx/png_decoder.h"
#include "base/stl_util-inl.h"
#include "base/string_util.h"
@@ -21,8 +23,6 @@
#include "net/base/net_util.h"
#include "views/background.h"
#include "views/controls/label.h"
-#include "views/controls/table/table_model.h"
-#include "views/controls/table/table_model_observer.h"
#include "views/controls/table/table_view.h"
#include "views/controls/textfield/textfield.h"
#include "views/focus/focus_manager.h"
@@ -51,7 +51,7 @@ static SkBitmap* default_fav_icon = NULL;
// How long we query entry points for.
static const int kPossibleURLTimeScope = 30;
-class PossibleURLModel : public views::TableModel {
+class PossibleURLModel : public TableModel {
public:
PossibleURLModel() : profile_(NULL) {
if (!default_fav_icon) {
@@ -215,7 +215,7 @@ class PossibleURLModel : public views::TableModel {
}
}
- virtual void SetObserver(views::TableModelObserver* observer) {
+ virtual void SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -237,7 +237,7 @@ class PossibleURLModel : public views::TableModel {
Profile* profile_;
// Our observer.
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
// Our consumer for favicon requests.
CancelableRequestConsumerT<size_t, NULL> consumer_;
@@ -269,13 +269,13 @@ ShelfItemDialog::ShelfItemDialog(ShelfItemDialogDelegate* delegate,
url_table_model_.reset(new PossibleURLModel());
- views::TableColumn col1(IDS_ASI_PAGE_COLUMN, views::TableColumn::LEFT, -1,
+ TableColumn col1(IDS_ASI_PAGE_COLUMN, TableColumn::LEFT, -1,
50);
col1.sortable = true;
- views::TableColumn col2(IDS_ASI_URL_COLUMN, views::TableColumn::LEFT, -1,
+ TableColumn col2(IDS_ASI_URL_COLUMN, TableColumn::LEFT, -1,
50);
col2.sortable = true;
- std::vector<views::TableColumn> cols;
+ std::vector<TableColumn> cols;
cols.push_back(col1);
cols.push_back(col2);
diff --git a/chrome/common/temp_scaffolding_stubs.h b/chrome/common/temp_scaffolding_stubs.h
index 37a53e0..04d11c6e 100644
--- a/chrome/common/temp_scaffolding_stubs.h
+++ b/chrome/common/temp_scaffolding_stubs.h
@@ -159,23 +159,6 @@ namespace views {
class AcceleratorHandler {
};
-class TableModelObserver {
- public:
- virtual void OnModelChanged() = 0;
- virtual void OnItemsChanged(int, int) = 0;
- virtual void OnItemsAdded(int, int) = 0;
- virtual void OnItemsRemoved(int, int) = 0;
-};
-
-class TableModel {
- public:
- int CompareValues(int row1, int row2, int column_id) {
- NOTIMPLEMENTED();
- return 0;
- }
- virtual int RowCount() = 0;
-};
-
#if !defined(TOOLKIT_VIEWS)
class MenuItemView {
public:
diff --git a/views/controls/table/group_table_view.h b/views/controls/table/group_table_view.h
index c92587f..640776e 100644
--- a/views/controls/table/group_table_view.h
+++ b/views/controls/table/group_table_view.h
@@ -5,8 +5,8 @@
#ifndef VIEWS_CONTROLS_TABLE_GROUP_TABLE_VIEW_H_
#define VIEWS_CONTROLS_TABLE_GROUP_TABLE_VIEW_H_
+#include "app/table_model.h"
#include "base/task.h"
-#include "views/controls/table/table_model.h"
#include "views/controls/table/table_view.h"
// The GroupTableView adds grouping to the TableView class.
diff --git a/views/controls/table/table_view.cc b/views/controls/table/table_view.cc
index 4e095cf..e0d0b55 100644
--- a/views/controls/table/table_view.cc
+++ b/views/controls/table/table_view.cc
@@ -16,13 +16,13 @@
#include "app/gfx/icon_util.h"
#include "app/l10n_util_win.h"
#include "app/resource_bundle.h"
+#include "app/table_model.h"
#include "base/string_util.h"
#include "base/win_util.h"
#include "skia/ext/skia_utils_win.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColorFilter.h"
#include "views/controls/native/native_view_host.h"
-#include "views/controls/table/table_model.h"
#include "views/controls/table/table_view_observer.h"
namespace views {
@@ -32,54 +32,11 @@ const int kListViewTextPadding = 15;
// Additional column width necessary if column has icons.
const int kListViewIconWidthAndPadding = 18;
-// TableModel -----------------------------------------------------------------
+// TableView ------------------------------------------------------------------
// static
const int TableView::kImageSize = 18;
-// Used for sorting.
-static Collator* collator = NULL;
-
-SkBitmap TableModel::GetIcon(int row) {
- return SkBitmap();
-}
-
-int TableModel::CompareValues(int row1, int row2, int column_id) {
- DCHECK(row1 >= 0 && row1 < RowCount() &&
- row2 >= 0 && row2 < RowCount());
- std::wstring value1 = GetText(row1, column_id);
- std::wstring value2 = GetText(row2, column_id);
- Collator* collator = GetCollator();
-
- if (collator) {
- UErrorCode compare_status = U_ZERO_ERROR;
- UCollationResult compare_result = collator->compare(
- static_cast<const UChar*>(value1.c_str()),
- static_cast<int>(value1.length()),
- static_cast<const UChar*>(value2.c_str()),
- static_cast<int>(value2.length()),
- compare_status);
- DCHECK(U_SUCCESS(compare_status));
- return compare_result;
- }
- NOTREACHED();
- return 0;
-}
-
-Collator* TableModel::GetCollator() {
- if (!collator) {
- UErrorCode create_status = U_ZERO_ERROR;
- collator = Collator::createInstance(create_status);
- if (!U_SUCCESS(create_status)) {
- collator = NULL;
- NOTREACHED();
- }
- }
- return collator;
-}
-
-// TableView ------------------------------------------------------------------
-
TableView::TableView(TableModel* model,
const std::vector<TableColumn>& columns,
TableTypes table_type,
@@ -961,11 +918,7 @@ void TableView::SortItemsAndUpdateMapping() {
// Sort the items.
ListView_SortItems(list_view_, &TableView::SortFunc, this);
- // Cleanup the collator.
- if (collator) {
- delete collator;
- collator = NULL;
- }
+ model_->ClearCollator();
// Update internal mapping to match how items were actually sorted.
int row_count = RowCount();
diff --git a/views/controls/table/table_view.h b/views/controls/table/table_view.h
index 94198f8..b8bda67 100644
--- a/views/controls/table/table_view.h
+++ b/views/controls/table/table_view.h
@@ -15,13 +15,15 @@ typedef struct tagNMLVCUSTOMDRAW NMLVCUSTOMDRAW;
#include <map>
#include <vector>
+#include "app/table_model_observer.h"
#include "third_party/skia/include/core/SkColor.h"
#if defined(OS_WIN)
// TODO(port): remove the ifdef when native_control.h is ported.
#include "views/controls/native_control.h"
#endif // defined(OS_WIN)
-#include "views/controls/table/table_model_observer.h"
+struct TableColumn;
+class TableModel;
class SkBitmap;
// A TableView is a view that displays multiple rows with any number of columns.
@@ -51,8 +53,6 @@ namespace views {
class ListView;
class ListViewParent;
class TableView;
-struct TableColumn;
-class TableModel;
class TableViewObserver;
// The cells in the first column of a table can contain:
diff --git a/views/controls/table/table_view_unittest.cc b/views/controls/table/table_view_unittest.cc
index c3d0a75..d79a5bc 100644
--- a/views/controls/table/table_view_unittest.cc
+++ b/views/controls/table/table_view_unittest.cc
@@ -4,10 +4,11 @@
#include <vector>
+#include "app/table_model.h"
+#include "app/table_model_observer.h"
#include "base/message_loop.h"
#include "base/string_util.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "views/controls/table/table_model.h"
#include "views/controls/table/table_view.h"
#include "views/window/window_delegate.h"
#include "views/window/window_win.h"
@@ -24,7 +25,7 @@ using views::TableView;
// 0, 1
// 1, 1
// 2, 2
-class TestTableModel : public views::TableModel {
+class TestTableModel : public TableModel {
public:
TestTableModel();
@@ -40,11 +41,11 @@ class TestTableModel : public views::TableModel {
// TableModel
virtual int RowCount();
virtual std::wstring GetText(int row, int column_id);
- virtual void SetObserver(views::TableModelObserver* observer);
+ virtual void SetObserver(TableModelObserver* observer);
virtual int CompareValues(int row1, int row2, int column_id);
private:
- views::TableModelObserver* observer_;
+ TableModelObserver* observer_;
// The data.
std::vector<std::vector<int>> rows_;
@@ -90,7 +91,7 @@ std::wstring TestTableModel::GetText(int row, int column_id) {
return IntToWString(rows_[row][column_id]);
}
-void TestTableModel::SetObserver(views::TableModelObserver* observer) {
+void TestTableModel::SetObserver(TableModelObserver* observer) {
observer_ = observer;
}
@@ -141,7 +142,7 @@ class TableViewTest : public testing::Test, views::WindowDelegate {
void TableViewTest::SetUp() {
OleInitialize(NULL);
model_.reset(CreateModel());
- std::vector<views::TableColumn> columns;
+ std::vector<TableColumn> columns;
columns.resize(2);
columns[0].id = 0;
columns[1].id = 1;
diff --git a/views/views.gyp b/views/views.gyp
index c0e63c8..2faa58a 100644
--- a/views/views.gyp
+++ b/views/views.gyp
@@ -148,9 +148,6 @@
'controls/tabbed_pane.h',
'controls/table/group_table_view.cc',
'controls/table/group_table_view.h',
- 'controls/table/table_model.cc',
- 'controls/table/table_model.h',
- 'controls/table/table_model_observer.h',
'controls/table/table_view.cc',
'controls/table/table_view.h',
'controls/table/table_view_observer.h',