Android Open Source - ironcontrol-for-android List Hierarchy Activity






From Project

Back to project page ironcontrol-for-android.

License

The source code is released under:

Apache License

If you think the Android project ironcontrol-for-android 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

/*
 * #%L// www.  j a v a 2s .  co  m
 * =====================================================
 *   _____                _     ____  _   _       _   _
 *  |_   _|_ __ _   _ ___| |_  / __ \| | | | ___ | | | |
 *    | | | '__| | | / __| __|/ / _` | |_| |/ __|| |_| |
 *    | | | |  | |_| \__ \ |_| | (_| |  _  |\__ \|  _  |
 *    |_| |_|   \__,_|___/\__|\ \__,_|_| |_||___/|_| |_|
 *                             \____/
 * 
 * =====================================================
 * 
 * Hochschule Hannover
 * (University of Applied Sciences and Arts, Hannover)
 * Faculty IV, Dept. of Computer Science
 * Ricklinger Stadtweg 118, 30459 Hannover, Germany
 * 
 * Email: trust@f4-i.fh-hannover.de
 * Website: http://trust.f4.hs-hannover.de/
 * 
 * This file is part of ironcontrol for android, version 1.0.1, implemented by the Trust@HsH research group at the Hochschule Hannover.
 * %%
 * Copyright (C) 2013 Trust@HsH
 * %%
 * 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.
 * #L%
 */
package de.hshannover.f4.trust.ironcontrol.view.list_activities;

import java.util.List;

import android.app.ListActivity;
import android.app.LoaderManager;
import android.content.Intent;
import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import de.hshannover.f4.trust.ironcontrol.R;
import de.hshannover.f4.trust.ironcontrol.asynctask.SearchTask;
import de.hshannover.f4.trust.ironcontrol.asynctask.SubscriptionTask;
import de.hshannover.f4.trust.ironcontrol.database.DBContentProvider;
import de.hshannover.f4.trust.ironcontrol.database.entities.Requests;
import de.hshannover.f4.trust.ironcontrol.database.entities.Responses;
import de.hshannover.f4.trust.ironcontrol.database.entities.ResultItems;
import de.hshannover.f4.trust.ironcontrol.database.entities.ResultMetaAttributes;
import de.hshannover.f4.trust.ironcontrol.database.entities.ResultMetadata;
import de.hshannover.f4.trust.ironcontrol.logic.data.Operation;
import de.hshannover.f4.trust.ironcontrol.view.SearchFragmentActivity;
import de.hshannover.f4.trust.ironcontrol.view.SubscribeFragmentActivity;

public abstract class ListHierarchyActivity extends ListActivity implements LoaderManager.LoaderCallbacks<Cursor> {

  protected static final String[] FROM_REQUESTS = {Requests.COLUMN_NAME, Requests.COLUMN_IDENTIFIER1, Requests.COLUMN_IDENTIFIER1_Value, Requests.COLUMN_MAX_DEPTH};
  protected static final String[] FROM_RESPONSES = {Responses.COLUMN_DATE, Responses.COLUMN_TIME, Responses.COLUMN_NEW};
  protected static final String[] FROM_RESULT_ITEMS = {ResultItems.COLUMN_IDENTIFIER1, ResultItems.COLUMN_IDENTIFIER2};
  protected static final String[] FROM_RESULT_META = {ResultMetadata.COLUMN_LOCAL_NAME, ResultMetadata.COLUMN_CARDINALITY, ResultMetadata.COLUMN_PUBLISHERID, ResultMetadata.COLUMN_TIMESTAMP};
  protected static final String[] FROM_META_ATTRIBUTES = {ResultMetaAttributes.COLUMN_NODE_NAME, ResultMetaAttributes.COLUMN_NODE_VALUE};

  protected static final int[] TO_LIST1_ROW = {R.id.label, R.id.label_info1, R.id.label_info2, R.id.label_info3};
  protected static final int[] TO_LIST2_ROW = {R.id.tvLabel, R.id.tvInfo1, R.id.tvNew};

  public static final String EXTRA_ID_KEY = "ID";

  private ListHierarchyType mType;

  private SimpleCursorAdapter adapter;

  protected String mAction;

  protected String lastID;

  enum ListHierarchyType{
    SEARCH,
    SUBSCRIPTION;
  }

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_view);

    // get selected Item id
    if(getIntent().getExtras() != null){
      lastID = getIntent().getExtras().getString("ID");
    }else {
      lastID = "-1";
    }

    // get ACTION
    mAction = getIntent().getAction();

    if(mAction.equals(getResources().getString(R.string.ACTION_SAVED_SEARCHS))){
      mType = ListHierarchyType.SEARCH;
    }else if(mAction.equals(getResources().getString(R.string.ACTION_SAVED_SUBSCRIPTIONS))){
      mType = ListHierarchyType.SUBSCRIPTION;
    }

    // initCursorAdapter
    adapter = setListAdapter(mType);
    getLoaderManager().initLoader(Integer.valueOf(lastID), null, this);
    super.setListAdapter(adapter);
  }

  protected abstract SimpleCursorAdapter setListAdapter(ListHierarchyType type);

  @Override
  protected abstract void onListItemClick(ListView l, View v, int position, long id);

  @Override
  public Loader<Cursor> onCreateLoader(int id, Bundle args){
    return onCreateLoader(id,args,mType);
  }

  protected abstract Loader<Cursor> onCreateLoader(int id, Bundle args, ListHierarchyType type);

  @Override
  public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    adapter.swapCursor(data);
  }

  @Override
  public void onLoaderReset(Loader<Cursor> loader) {
    adapter.swapCursor(null);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    return onCreateOptionsMenu(menu, mType);
  }

  protected abstract boolean onCreateOptionsMenu(Menu menu, ListHierarchyType type);

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    onOptionsItemSelected(item, mType);
    return super.onOptionsItemSelected(item);
  }

  protected abstract void onOptionsItemSelected(MenuItem item, ListHierarchyType type);

  @Override
  public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("Context Menu");
    onCreateContextMenu(menu, v, menuInfo, mType);
  }

  protected abstract void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo, ListHierarchyType type);

  @Override
  public boolean onContextItemSelected(MenuItem item) {
    onContextItemSelected(item, mType);
    return super.onContextItemSelected(item);
  }

  protected abstract void onContextItemSelected(MenuItem item, ListHierarchyType type);

  protected void startEditActivity(String listItemId) {
    Intent intent = null;
    switch (mType) {
    case SEARCH : intent = new Intent(getBaseContext(), SearchFragmentActivity.class);
    break;
    case SUBSCRIPTION: intent = new Intent(getBaseContext(), SubscribeFragmentActivity.class);
    break;
    }
    intent.putExtra("listItemId", listItemId);
    startActivity(intent);
  }

  protected void remove(List<String> selectedRowIds) {
    for (String selectedRowId : selectedRowIds) {
      remove(selectedRowId, mType);
    }
  }

  protected abstract void remove(String selectedId, ListHierarchyType type);

  protected void search(List<String> selectedRowIds) {
    for (String selectedRowId : selectedRowIds) {
      search(selectedRowId);
    }
  }

  protected void search(String id){
    Uri publish_uri = Uri.parse(DBContentProvider.SEARCH_URI + "/"+ id);

    Cursor search_cursor = getContentResolver().query(publish_uri, null, null, null, null);

    search_cursor.moveToNext();

    String name = search_cursor.getString(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_NAME));
    String identifier = search_cursor.getString(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_IDENTIFIER1));
    String identifierValue = search_cursor.getString(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_IDENTIFIER1_Value));
    int maxDepth = search_cursor.getInt(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_MAX_DEPTH));
    int maxSize = search_cursor.getInt(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_MAX_SITZ));
    String matchLinks = search_cursor.getString(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_MATCH_LINKS));
    String resultFilter = search_cursor.getString(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_RESULT_FILTER));
    String terminalIdentifiers = search_cursor.getString(search_cursor.getColumnIndexOrThrow(Requests.COLUMN_TERMINAL_IDENTIFIER_TYPES));

    search_cursor.close();

    if(maxSize == 0){
      new SearchTask(name, identifier, identifierValue, maxDepth, this, SearchFragmentActivity.MESSAGESEARCH).execute();
    } else{
      new SearchTask(name, identifier, identifierValue, matchLinks, resultFilter, maxDepth, maxSize, terminalIdentifiers, this, SearchFragmentActivity.MESSAGESEARCH).execute();
    }
  }

  protected void subscribeUpdate(List<String> selectedRowIds){
    for (String element : selectedRowIds) {
      subscribeUpdate(element);
    }
  }

  protected void subscribeUpdate(String id){
    Uri subscription_uri = Uri.parse(DBContentProvider.SUBSCRIPTION_URI + "/"+ id);

    Cursor subscription_cursor = getContentResolver().query(subscription_uri, null, null, null, null);

    subscription_cursor.moveToNext();

    String name = subscription_cursor.getString(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_NAME));
    String identifier = subscription_cursor.getString(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_IDENTIFIER1));
    String identifierValue = subscription_cursor.getString(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_IDENTIFIER1_Value));
    int maxDepth = subscription_cursor.getInt(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_MAX_DEPTH));
    int maxSize = subscription_cursor.getInt(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_MAX_SITZ));
    String matchLinks = subscription_cursor.getString(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_MATCH_LINKS));
    String resultFilter = subscription_cursor.getString(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_RESULT_FILTER));
    String terminalIdentifiers = subscription_cursor.getString(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_TERMINAL_IDENTIFIER_TYPES));

    subscription_cursor.close();

    if(maxSize == 0){
      new SubscriptionTask(this, name, identifier, identifierValue, maxDepth, id, Operation.UPDATE).execute();
    } else{
      new SubscriptionTask(this, name, identifier, identifierValue, maxDepth, maxSize, terminalIdentifiers, resultFilter, matchLinks, id, Operation.UPDATE).execute();
    }
  }

  protected void subscribeDelete(List<String> selectedRowIds){
    for (String element : selectedRowIds) {
      subscribeDelete(element);
    }
  }

  protected void subscribeDelete(String id){
    Uri subscription_uri = Uri.parse(DBContentProvider.SUBSCRIPTION_URI + "/"+ id);

    Cursor subscription_cursor = getContentResolver().query(subscription_uri, null, null, null, null);

    subscription_cursor.moveToNext();

    String name = subscription_cursor.getString(subscription_cursor.getColumnIndexOrThrow(Requests.COLUMN_NAME));

    new SubscriptionTask(this, name, null, null, 0, id, Operation.DELETE).execute();
  }

}




Java Source Code List

de.hshannover.f4.trust.ironcontrol.asynctask.ConnectionTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.PDP.java
de.hshannover.f4.trust.ironcontrol.asynctask.PublishTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.PublishTestTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.PurgePublisherTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.SearchTask.java
de.hshannover.f4.trust.ironcontrol.asynctask.SubscriptionTask.java
de.hshannover.f4.trust.ironcontrol.database.DBContentProvider.java
de.hshannover.f4.trust.ironcontrol.database.DatabaseHelper.java
de.hshannover.f4.trust.ironcontrol.database.entities.AbstractEntity.java
de.hshannover.f4.trust.ironcontrol.database.entities.Attributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.Connections.java
de.hshannover.f4.trust.ironcontrol.database.entities.IdentifierAttributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.Identifier.java
de.hshannover.f4.trust.ironcontrol.database.entities.MetaAttributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.Requests.java
de.hshannover.f4.trust.ironcontrol.database.entities.Responses.java
de.hshannover.f4.trust.ironcontrol.database.entities.ResultItems.java
de.hshannover.f4.trust.ironcontrol.database.entities.ResultMetaAttributes.java
de.hshannover.f4.trust.ironcontrol.database.entities.ResultMetadata.java
de.hshannover.f4.trust.ironcontrol.database.entities.VendorMetadata.java
de.hshannover.f4.trust.ironcontrol.exceptions.IronControlUncaughtExceptionHandler.java
de.hshannover.f4.trust.ironcontrol.logger.Level.java
de.hshannover.f4.trust.ironcontrol.logger.LogData.java
de.hshannover.f4.trust.ironcontrol.logger.LogReceiver.java
de.hshannover.f4.trust.ironcontrol.logger.LoggerFactory.java
de.hshannover.f4.trust.ironcontrol.logger.Logger.java
de.hshannover.f4.trust.ironcontrol.logger.appander.Appender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogCatAppender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogFileAppender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogListAppender.java
de.hshannover.f4.trust.ironcontrol.logger.appander.LogToastAppender.java
de.hshannover.f4.trust.ironcontrol.logic.Connection.java
de.hshannover.f4.trust.ironcontrol.logic.KeystoreManager.java
de.hshannover.f4.trust.ironcontrol.logic.RequestsController.java
de.hshannover.f4.trust.ironcontrol.logic.ResultNotificationManager.java
de.hshannover.f4.trust.ironcontrol.logic.StoredResponses.java
de.hshannover.f4.trust.ironcontrol.logic.SubscriptionPoller.java
de.hshannover.f4.trust.ironcontrol.logic.data.BuildIdetifiers.java
de.hshannover.f4.trust.ironcontrol.logic.data.Operation.java
de.hshannover.f4.trust.ironcontrol.logic.data.PollReceiver.java
de.hshannover.f4.trust.ironcontrol.logic.data.PollSender.java
de.hshannover.f4.trust.ironcontrol.logic.data.PublishRequestData.java
de.hshannover.f4.trust.ironcontrol.logic.data.RequestData.java
de.hshannover.f4.trust.ironcontrol.logic.data.SearchRequestData.java
de.hshannover.f4.trust.ironcontrol.logic.data.SubscribeRequestData.java
de.hshannover.f4.trust.ironcontrol.view.AdvancedRequestFragment.java
de.hshannover.f4.trust.ironcontrol.view.ConnectionFragmentActivity.java
de.hshannover.f4.trust.ironcontrol.view.MainActivity.java
de.hshannover.f4.trust.ironcontrol.view.MetadataBuilderActivity.java
de.hshannover.f4.trust.ironcontrol.view.PublishActivity.java
de.hshannover.f4.trust.ironcontrol.view.SearchButtonFragment.java
de.hshannover.f4.trust.ironcontrol.view.SearchFragmentActivity.java
de.hshannover.f4.trust.ironcontrol.view.SettingsActivity.java
de.hshannover.f4.trust.ironcontrol.view.SimpleRequestFragment.java
de.hshannover.f4.trust.ironcontrol.view.SubscribeButtonFragment.java
de.hshannover.f4.trust.ironcontrol.view.SubscribeFragmentActivity.java
de.hshannover.f4.trust.ironcontrol.view.TabFragment.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceDialogEvent.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceListDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceListEvent.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoicePublishDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceRemoveDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceSearchDialog.java
de.hshannover.f4.trust.ironcontrol.view.dialogs.MultichoiceSubscribeDialog.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListHierarchyActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListOverviewActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResponsesActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResultItemsActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResultMetaActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListResultMetaAttributesActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListSavedConnectionsActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListSavedPublishsActivity.java
de.hshannover.f4.trust.ironcontrol.view.list_activities.ListVendorMetadataActivity.java
de.hshannover.f4.trust.ironcontrol.view.logger.LoggerListActivity.java
de.hshannover.f4.trust.ironcontrol.view.logger.LoggerListArrayAdapter.java
de.hshannover.f4.trust.ironcontrol.view.logger.LoggerPopUp.java
de.hshannover.f4.trust.ironcontrol.view.util.MetaDataEditText.java
de.hshannover.f4.trust.ironcontrol.view.util.MetaDataLinearLayout.java
de.hshannover.f4.trust.ironcontrol.view.util.MetadataValueFieldsBuilder.java
de.hshannover.f4.trust.ironcontrol.view.util.Node.java
de.hshannover.f4.trust.ironcontrol.view.util.PopUpEvent.java
de.hshannover.f4.trust.ironcontrol.view.util.PopUp.java
de.hshannover.f4.trust.ironcontrol.view.util.PromptSpinnerAdapter.java
de.hshannover.f4.trust.ironcontrol.view.util.RequiredSpinnerAdapter.java
de.hshannover.f4.trust.ironcontrol.view.util.SavePopUp.java
de.hshannover.f4.trust.ironcontrol.view.util.Util.java
de.hshannover.f4.trust.ironcontrol.view.util.ValidSpinnerAdapter.java