public Object[] getElements(Object inputElement) {
    if (inputElement == m_input) {

      if (m_model == null) {
        createModel();
      }
      return m_model.getElements().toArray(new Node[0]);
    } else {
      return new Object[0];
    }
  }
  /**
   * Obtain the schema from the m_input and compute the graph model with this schema.
   *
   * @return
   */
  private void createModel() {
    if (m_schema == null) {
      if ((m_input != null) && (m_input.getDataSource() instanceof IOntology)) {

        IOntology onto = (IOntology) m_input.getDataSource();
        if (m_model == null) {
          m_model = new GraphModel();
        }
        m_schema = m_content_service.getHierarchicalSchema(onto);
        m_model.addData(m_schema);
      }
    }
  }
 public boolean hasChildren(Object element) {
   if (m_model == null) {
     createModel();
   }
   return m_model.hasChildren((Node) element);
 }
 public Object getParent(Object element) {
   if (m_model == null) {
     createModel();
   }
   return m_model.getParent((Node) element);
 }
 public Object[] getChildren(Object parentElement) {
   if (m_model == null) {
     createModel();
   }
   return m_model.getChildren((Node) parentElement);
 }