/*
* Copyright(c) 2019 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
using System.ComponentModel;
using System.Collections.Generic;
namespace Tizen.NUI.Components
{
///
/// The CheckboxGroup class is used to group together a set of CheckBox control
///
///
/// CheckBoxGroup checkGroup = new CheckBoxGroup();
/// CheckBox check1 = new CheckBox();
/// CheckBox check2 = new CheckBox();
/// checkGroup.Add(check1);
/// checkGroup.Add(check2);
///
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public class CheckBoxGroup : SelectGroup
{
static CheckBoxGroup() { }
///
/// Construct CheckBoxGroup
///
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public CheckBoxGroup() : base()
{
}
///
/// Add CheckBox to the end of CheckBoxGroup.
///
/// The CheckBox to be added to the CheckBoxGroup
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public void Add(CheckBox check)
{
if (null == check) return;
base.AddSelection(check);
check.ItemGroup = this;
}
///
/// Remove CheckBox from the CheckBoxGroup.
///
/// The CheckBox to remove from the CheckBoxGroup
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public void Remove(CheckBox check)
{
if (null == check) return;
base.RemoveSelection(check);
check.ItemGroup = null;
}
///
/// Get the CheckBox object at the specified index.
///
/// The item index
/// CheckBox
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public CheckBox GetItem(int index)
{
return ItemGroup[index] as CheckBox;
}
///
/// Get the index array of checked items.
///
/// The array of index
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public int[] GetCheckedIndices()
{
List selectedItemsList = new List();
for (int i = 0; i < ItemGroup.Count; i++)
{
if (ItemGroup[i].IsSelected)
{
selectedItemsList.Add(i);
}
}
return selectedItemsList.ToArray();
}
///
/// Get the CheckBox array of checked items.
///
/// The array of CheckBox
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public CheckBox[] GetCheckedItems()
{
List selectedList = new List();
foreach (CheckBox check in ItemGroup)
{
if (check.IsSelected)
{
selectedList.Add(check);
}
}
return selectedList.ToArray();
}
///
/// Determines whether every checkboxes in the CheckBoxGroup are checked
///
/// If all of CheckBoxes are checked, return true. otherwise false
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public bool IsCheckedAll()
{
foreach (CheckBox cb in ItemGroup)
{
if (!cb.IsSelected)
{
return false;
}
}
return true;
}
///
/// Check or Uncheck all of child checkboxes by the specified value
///
/// The boolean state of the check box
/// 6
/// This will be public opened in tizen_5.5 after ACR done. Before ACR, need to be hidden as inhouse API.
[EditorBrowsable(EditorBrowsableState.Never)]
public void CheckAll(bool state)
{
foreach (CheckBox cb in ItemGroup)
{
cb.IsSelected = state;
}
}
}
}