Android Open Source - BehatReporter Item Handler






From Project

Back to project page BehatReporter.

License

The source code is released under:

Copyright (C) 2013 Fabian Kiss <headrevision@gmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software...

If you think the Android project BehatReporter listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package headrevision.BehatReporter;
/*  ww  w  .  ja va  2s.  com*/
import headrevision.BehatReporter.json.ParserException;
import headrevision.BehatReporter.report.ItemParser;
import headrevision.BehatReporter.report.ItemsAdapter;
import headrevision.BehatReporter.report.ItemsAdapterFactory;
import headrevision.BehatReporter.ui.ItemDepth;
import headrevision.BehatReporter.ui.Message;

import java.util.List;

import android.app.Activity;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;

import com.fasterxml.jackson.databind.JsonNode;

public class ItemHandler {

  private static ItemHandler instance;

  private Activity activity;

  private ItemHandler(Activity activity) {
    this.activity = activity;
  }

  public static ItemHandler getInstance(Activity activity) {
    if (instance == null || instance.activity != activity) {
      instance = new ItemHandler(activity);
    }
    return instance;
  }

  public void show(ExpandableListView parent, int groupPosition, int childPosition, OnChildClickListener listener) {
    ItemsAdapter itemsAdapter = (ItemsAdapter) parent.getExpandableListAdapter();
    JsonNode item = itemsAdapter.getChild(groupPosition, childPosition);
    ItemParser itemParser = itemsAdapter.getItemParserFactory().getItemParser(item);

    showSubItems(itemsAdapter, item, itemParser, listener);
  }

  private void showSubItems(ItemsAdapter itemsAdapter, JsonNode item, ItemParser itemParser, OnChildClickListener listener) {
    if (itemParser.hasSubItems()) {
      List<JsonNode> subItems = getSubItems(itemParser);

      if (subItems != null) {
        ItemsAdapterFactory subItemsAdapterFactory = itemsAdapter.getSubItemsAdapterFactory(item);
        ListHandler.getInstance(activity).show(itemParser, subItems, subItemsAdapterFactory, listener);
        ItemDepth.getInstance(activity).stepForward();
      }
    }
  }

  private List<JsonNode> getSubItems(ItemParser itemParser) {
    List<JsonNode> subItems = null;

    try {
      subItems = itemParser.parseSubItems();
    } catch (ParserException e) {
      Message.getInstance(activity).showError(e);
    }

    return subItems;
  }

}




Java Source Code List

headrevision.BehatReporter.ItemHandler.java
headrevision.BehatReporter.ListHandler.java
headrevision.BehatReporter.MainActivity.java
headrevision.BehatReporter.ReportHandler.java
headrevision.BehatReporter.json.ParserException.java
headrevision.BehatReporter.json.Parser.java
headrevision.BehatReporter.json.ReaderException.java
headrevision.BehatReporter.json.Reader.java
headrevision.BehatReporter.report.FeatureParserFactory.java
headrevision.BehatReporter.report.FeatureParser.java
headrevision.BehatReporter.report.FeaturesAdapterFactory.java
headrevision.BehatReporter.report.FeaturesAdapter.java
headrevision.BehatReporter.report.ItemParserFactory.java
headrevision.BehatReporter.report.ItemParser.java
headrevision.BehatReporter.report.ItemsAdapterFactory.java
headrevision.BehatReporter.report.ItemsAdapter.java
headrevision.BehatReporter.report.LoaderException.java
headrevision.BehatReporter.report.LoaderTaskListener.java
headrevision.BehatReporter.report.LoaderTask.java
headrevision.BehatReporter.report.Loader.java
headrevision.BehatReporter.report.OutlineExampleParser.java
headrevision.BehatReporter.report.OutlineParser.java
headrevision.BehatReporter.report.ReportParser.java
headrevision.BehatReporter.report.Result.java
headrevision.BehatReporter.report.ScenarioOrOutlineParserFactory.java
headrevision.BehatReporter.report.ScenarioParser.java
headrevision.BehatReporter.report.ScenariosAndOutlinesAdapterFactory.java
headrevision.BehatReporter.report.ScenariosAndOutlinesAdapter.java
headrevision.BehatReporter.report.StepOrOutlineExampleParserFactory.java
headrevision.BehatReporter.report.StepParserFactory.java
headrevision.BehatReporter.report.StepParser.java
headrevision.BehatReporter.report.StepsAdapterFactory.java
headrevision.BehatReporter.report.StepsAdapter.java
headrevision.BehatReporter.report.StepsAndOutlineExamplesAdapterFactory.java
headrevision.BehatReporter.report.StepsAndOutlineExamplesAdapter.java
headrevision.BehatReporter.store.ItemTitles.java
headrevision.BehatReporter.store.ReportJson.java
headrevision.BehatReporter.store.ReportUrl.java
headrevision.BehatReporter.ui.ItemDepth.java
headrevision.BehatReporter.ui.Message.java
headrevision.BehatReporter.ui.OptionsMenu.java
headrevision.BehatReporter.ui.ResultColor.java
headrevision.BehatReporter.ui.SetReportDialogListener.java
headrevision.BehatReporter.ui.SetReportDialog.java