public function sio__annotation::elementInfo

3.x sio__annotation.inc public sio__annotation::elementInfo()

Overrides TripalField::elementInfo

See also

TripalField::elementInfo()

File

tripal_chado/includes/TripalFields/sio__annotation/sio__annotation.inc, line 91

Class

sio__annotation

Code

public function elementInfo() {
  $field_table = $this->instance['settings']['chado_table'];
  $schema = chado_get_schema($field_table);

  $vocabulary_term = chado_get_semweb_term('cvterm', 'cv_id');
  $accession_term = chado_get_semweb_term('dbxref', 'accession');
  $definition_term = chado_get_semweb_term('cvterm', 'definition');

  $field_term = $this->getFieldTermID();
  $info = array(
    $field_term => array(
      'operations' => array(),
      'sortable' => FALSE,
      'searchable' => FALSE,
      'type' => 'xs:complexType',
      'readonly' => FALSE,
      'elements' => array(
        $vocabulary_term => array(
          'sortable' => TRUE,
          'searchable' => TRUE,
          'label' => 'Annotation Term Vocabulary',
          'type' => 'xs:string',
          'readonly' => FALSE,
          'required' => TRUE,
        ),
        $accession_term => array(
          'sortable' => TRUE,
          'searchable' => TRUE,
          'label' => 'Annotation Term Accession',
          'type' => 'xs:string',
          'readonly' => FALSE,
          'required' => TRUE,
        ),
        $definition_term => array(
          'sortable' => TRUE,
          'searchable' => TRUE,
          'label' => 'Annotation Term Description',
          'type' => 'xs:string',
          'readonly' => FALSE,
          'required' => FALSE,
        ),
      ),
    ),
  );

  if (array_key_exists('is_not', $schema['fields'])) {
    $negation_term = chado_get_semweb_term($field_table, 'is_not');
    $info[$field_term]['elements'][$negation_term] = array(
      'sortable' => FALSE,
      'searchable' => FALSE,
      'label' => 'Annotation Term Negates',
      'type' => 'xs:boolean',
      'readonly' => FALSE,
      'required' => FALSE,
    );
  }
  if (array_key_exists('rank', $schema['fields'])) {
    $rank_term = chado_get_semweb_term($field_table, 'rank');
    $info[$field_term]['elements'][$rank_term] = array(
      'sortable' => FALSE,
      'searchable' => FALSE,
      'label' => 'Annotation Term Rank',
      'type' => 'xs:integer',
      'readonly' => FALSE,
      'required' => FALSE,
    );
  }
  if (array_key_exists('pub_id', $schema['fields'])) {
  }
  return $info;
}