1/*
2 * Copyright 2009 Haiku Inc. All rights reserved.
3 * Distributed under the terms of the MIT license.
4 *
5 * Authors:
6 *		Pieter Panman
7 */
8
9
10#include "PropertyList.h"
11
12#include <Catalog.h>
13#include <ColumnTypes.h>
14
15#undef B_TRANSLATION_CONTEXT
16#define B_TRANSLATION_CONTEXT "PropertyList"
17
18
19PropertyRow::PropertyRow(const char* name, const char* value)
20	: BRow(),
21	fName(name), fValue(value)
22{
23	SetField(new BStringField(name), kNameColumn);
24	SetField(new BStringField(value), kValueColumn);
25}
26
27
28PropertyRow::~PropertyRow()
29{
30}
31
32
33void
34PropertyRow::SetName(const char* name)
35{
36	fName = name;
37	SetField(new BStringField(name), kNameColumn);
38}
39
40
41void
42PropertyRow::SetValue(const char* value)
43{
44	fValue = value;
45	SetField(new BStringField(value), kValueColumn);
46}
47
48
49PropertyList::PropertyList(const char* name)
50	: BColumnListView(BRect(0.0, 0.0, 1.0, 1.0), name, B_FOLLOW_ALL, 0,
51		B_NO_BORDER, true)
52{
53	BStringColumn* nameColumn;
54	AddColumn(nameColumn = new BStringColumn(B_TRANSLATE("Name"), 150, 50, 500,
55			B_TRUNCATE_MIDDLE),
56		kNameColumn);
57	AddColumn(new BStringColumn(B_TRANSLATE("Value"), 150, 50, 500,
58		B_TRUNCATE_END), kValueColumn);
59	SetSortColumn(nameColumn, false, true);
60}
61
62
63PropertyList::~PropertyList()
64{
65	RemoveAll();
66}
67
68
69void
70PropertyList::AddAttributes(const Attributes& attributes)
71{
72	RemoveAll();
73	for (unsigned int i = 0; i < attributes.size(); i++) {
74		AddRow(new PropertyRow(attributes[i].fName, attributes[i].fValue));
75	}
76}
77
78
79void
80PropertyList::RemoveAll()
81{
82	BRow *row;
83	while ((row = RowAt((int32)0, NULL))!=NULL) {
84		RemoveRow(row);
85		delete row;
86	}
87}
88
89
90void
91PropertyList::SelectionChanged()
92{
93}
94