Como adiciono categorias a um escopo?

3

Estou brincando com o Ubuntu SDK. No momento, estou tentando criar um escopo do Unity 8. Atualmente estou preso com o seguinte:

  • Como adiciono categorias ao escopo (a lista de seleção acima dos resultados, consulte Amazon Scope)

Infelizmente, não encontrei nenhuma informação útil nos documentos do desenvolvedor.

    
por Michael W 07.11.2014 / 23:17

1 resposta

1

A lista suspensa acima dos resultados é o seletor de departamento. As categorias são os diferentes grupos de itens nos resultados de um escopo, e é por isso que você pode ter tido problemas para encontrar a API correta.

Para adicionar departamentos ao seu escopo, você deve chamar register_departments no objeto de resposta no método run da sua classe de consulta. Isso leva um objeto unity::scopes::Department::SCPtr representando o conjunto de departamentos visíveis para este conjunto específico de resultados:

  1. se o usuário estiver navegando no departamento de nível superior, você deve passar um Department representando o nível superior, com seus filhos imediatos preenchidos.

  2. Se o usuário estiver navegando em um subdepartamento, você deve passar um Department representando o pai, com seus filhos imediatos preenchidos. O departamento atual deve aparecer dentro dos filhos.

A ideia é que apenas as partes da árvore de departamento necessárias para a navegação imediata sejam fornecidas. Seu código pode ser algo assim:

Department::SPtr parent = Department::create("parent", query(), "Parent Dept")
parent->set_subdepartments({
    Department::create("sibling", query(), "Sibling department"),
    Department::create("current", query(), "Current departmnet")});
reply->register_departments(parent);

Agora, tudo o que você precisa fazer é fazer com que o seu escopo forneça resultados relevantes para o departamento selecionado pelo usuário. Isso é disponibilizado em sua classe de consulta como query().department_id() . Isso corresponderá à ID de um dos departamentos que você registrou anteriormente ou "" , que deve ser tratado como o departamento de nível superior.

    
por James Henstridge 13.11.2014 / 13:00