Android Open Source - js-android-sdk Resource Lookup Array Adapter






From Project

Back to project page js-android-sdk.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project js-android-sdk 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

/*
 * Copyright (C) 2012-2014 Jaspersoft Corporation. All rights reserved.
 * http://community.jaspersoft.com/project/mobile-sdk-android
 *// w  w w . j  a va  2  s  . c  om
 * Unless you have purchased a commercial license agreement from Jaspersoft,
 * the following license terms apply:
 *
 * This program is part of Jaspersoft Mobile SDK for Android.
 *
 * Jaspersoft Mobile SDK is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Jaspersoft Mobile SDK is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with Jaspersoft Mobile SDK for Android. If not, see
 * <http://www.gnu.org/licenses/lgpl>.
 */

package com.jaspersoft.android.sdk.ui.adapters;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.jaspersoft.android.sdk.client.oxm.resource.ResourceLookup;
import com.jaspersoft.android.sdk.ui.R;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.EnumMap;
import java.util.List;

import static com.jaspersoft.android.sdk.client.oxm.resource.ResourceLookup.ResourceType;

/**
 * A concrete ArrayAdapter that is backed by an array of ResourceLookup objects.
 *
 * @author Ivan Gadzhega
 * @since 1.7
 */
public class ResourceLookupArrayAdapter extends ArrayAdapter<ResourceLookup>{

    private LayoutInfo layoutInfo;
    private EnumMap<ResourceType, Integer> drawableIdsMap;
    private String datetimeFormatPattern = "yyyy-MM-dd HH:mm:ss";

    public ResourceLookupArrayAdapter(Context context, LayoutInfo layoutInfo, List<ResourceLookup> resourceLookups) {
        this(context, layoutInfo, null, resourceLookups);
    }

    public ResourceLookupArrayAdapter(Context context, LayoutInfo layoutInfo,
                                      EnumMap<ResourceType,Integer> drawableIdsMap,
                                      List<ResourceLookup> resourceLookups) {
        super(context, layoutInfo.layoutResId, resourceLookups);
        this.layoutInfo = layoutInfo;
        this.drawableIdsMap = drawableIdsMap;
    }

    @Deprecated
    public ResourceLookupArrayAdapter(Context context, List<ResourceLookup> resourceLookups) {
        this(context, new LayoutInfo(R.layout.resource_list_item),
                new EnumMap<ResourceType, Integer>(ResourceType.class), resourceLookups);

        layoutInfo.setIconViewId(R.id.resource_list_item_icon);
        layoutInfo.setLabelViewId(R.id.resource_list_item_label);
        layoutInfo.setUriViewId(R.id.resource_list_item_uri);

        drawableIdsMap.put(ResourceType.folder, R.drawable.ic_type_folder);
        drawableIdsMap.put(ResourceType.reportUnit, R.drawable.ic_type_report);
        drawableIdsMap.put(ResourceType.dashboard, R.drawable.ic_type_dashboard);
        drawableIdsMap.put(ResourceType.unknown, R.drawable.ic_type_unknown);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ResourceLookup resourceLookup = getItem(position);
        // reuse views
        View rowView = convertView;
        if (rowView == null) {
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            rowView = inflater.inflate(layoutInfo.layoutResId, parent, false);
            // configure view holder
            ViewHolder viewHolder = new ViewHolder();
            viewHolder.iconView = (ImageView) rowView.findViewById(layoutInfo.iconViewId);
            viewHolder.labelView = (TextView) rowView.findViewById(layoutInfo.labelViewId);
            viewHolder.descriptionView = (TextView) rowView.findViewById(layoutInfo.descriptionViewId);
            viewHolder.dateView = (TextView) rowView.findViewById(layoutInfo.dateViewId);
            viewHolder.uriView = (TextView) rowView.findViewById(layoutInfo.uriViewId);
            rowView.setTag(viewHolder);
        }
        // fill data
        ViewHolder viewHolder = (ViewHolder) rowView.getTag();
        if (viewHolder.iconView != null && drawableIdsMap != null) {
            Drawable icon = getIconByType(resourceLookup.getResourceType());
            viewHolder.iconView.setImageDrawable(icon);
        }
        if (viewHolder.labelView != null) {
            String label = resourceLookup.getLabel();
            viewHolder.labelView.setText(label);
        }
        if (viewHolder.descriptionView != null) {
            String description = resourceLookup.getDescription();
            viewHolder.descriptionView.setText(description);
        }
        if (viewHolder.dateView != null) {
            String date = formatDateString(resourceLookup.getUpdateDate());
            viewHolder.dateView.setText(date);
        }
        if (viewHolder.uriView != null) {
            String uri = resourceLookup.getUri();
            viewHolder.uriView.setText(uri);
        }
        // return configured view
        return rowView;
    }

    public void setDatetimeFormatPattern(String datetimeFormatPattern) {
        this.datetimeFormatPattern = datetimeFormatPattern;
    }

    //---------------------------------------------------------------------
    // Helper methods
    //---------------------------------------------------------------------

    private Drawable getIconByType(ResourceType type) {
        type = (drawableIdsMap.containsKey(type)) ? type : ResourceType.unknown;
        int drawableResId = drawableIdsMap.get(type);
        return getContext().getResources().getDrawable(drawableResId);
    }

    private String formatDateString(String updateDate) {
        updateDate = (updateDate == null) ? "" : updateDate;
        try {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(datetimeFormatPattern);
            Date dateValue = simpleDateFormat.parse(updateDate);
            DateFormat dateFormat = DateFormat.getDateInstance();
            return dateFormat.format(dateValue);
        } catch (ParseException ex) {
            return updateDate;
        }
    }

    //---------------------------------------------------------------------
    // Nested Classes
    //---------------------------------------------------------------------

    public static class LayoutInfo {
        private int layoutResId;
        private int iconViewId;
        private int labelViewId;
        private int descriptionViewId;
        private int dateViewId;
        private int uriViewId;

        public LayoutInfo(int layoutResId) {
            this.layoutResId = layoutResId;
        }

        public int getLayoutResId() {
            return layoutResId;
        }

        public int getIconViewId() {
            return iconViewId;
        }

        public void setIconViewId(int iconViewId) {
            this.iconViewId = iconViewId;
        }

        public int getLabelViewId() {
            return labelViewId;
        }

        public void setLabelViewId(int labelViewId) {
            this.labelViewId = labelViewId;
        }

        public int getDescriptionViewId() {
            return descriptionViewId;
        }

        public void setDescriptionViewId(int descriptionViewId) {
            this.descriptionViewId = descriptionViewId;
        }

        public int getDateViewId() {
            return dateViewId;
        }

        public void setDateViewId(int dateViewId) {
            this.dateViewId = dateViewId;
        }

        public int getUriViewId() {
            return uriViewId;
        }

        public void setUriViewId(int uriViewId) {
            this.uriViewId = uriViewId;
        }
    }

    private static class ViewHolder {
        private ImageView iconView;
        private TextView labelView;
        private TextView descriptionView;
        private TextView dateView;
        private TextView uriView;
    }

}




Java Source Code List

com.jaspersoft.android.sdk.client.JsRestClient.java
com.jaspersoft.android.sdk.client.JsServerProfile.java
com.jaspersoft.android.sdk.client.async.JsAsyncTaskManager.java
com.jaspersoft.android.sdk.client.async.JsOnTaskCallbackListener.java
com.jaspersoft.android.sdk.client.async.JsProgressTracker.java
com.jaspersoft.android.sdk.client.async.JsXmlSpiceService.java
com.jaspersoft.android.sdk.client.async.request.BaseRequest.java
com.jaspersoft.android.sdk.client.async.request.CheckReportStatusRequest.java
com.jaspersoft.android.sdk.client.async.request.DeleteResourceRequest.java
com.jaspersoft.android.sdk.client.async.request.GetRootFolderDataRequest.java
com.jaspersoft.android.sdk.client.async.request.ModifyResourceRequest.java
com.jaspersoft.android.sdk.client.async.request.ReportDetailsRequest.java
com.jaspersoft.android.sdk.client.async.request.RunReportExecutionRequest.java
com.jaspersoft.android.sdk.client.async.request.RunReportExportOutputRequest.java
com.jaspersoft.android.sdk.client.async.request.RunReportExportsRequest.java
com.jaspersoft.android.sdk.client.async.request.SaveExportAttachmentRequest.java
com.jaspersoft.android.sdk.client.async.request.SaveExportOutputRequest.java
com.jaspersoft.android.sdk.client.async.request.SaveReportAttachmentRequest.java
com.jaspersoft.android.sdk.client.async.request.SaveReportAttachmentsRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.BaseInputControlsRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.CacheableRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.GetInputControlsRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.GetInputControlsValuesRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.GetReportRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.GetResourceLookupsRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.GetResourceRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.GetResourcesRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.GetServerInfoRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.SearchResourcesRequest.java
com.jaspersoft.android.sdk.client.async.request.cacheable.ValidateInputControlsValuesRequest.java
com.jaspersoft.android.sdk.client.async.task.DeleteResourceAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.GetInputControlsAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.GetReportAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.GetResourceAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.GetResourcesListAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.GetServerInfoAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.JsAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.JsRestAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.ModifyResourceAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.SaveReportAttachmentAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.SaveReportAttachmentsAsyncTask.java
com.jaspersoft.android.sdk.client.async.task.SearchResourcesAsyncTask.java
com.jaspersoft.android.sdk.client.ic.InputControlWrapper.java
com.jaspersoft.android.sdk.client.oxm.ReportAttachment.java
com.jaspersoft.android.sdk.client.oxm.ReportDescriptor.java
com.jaspersoft.android.sdk.client.oxm.ResourceDescriptor.java
com.jaspersoft.android.sdk.client.oxm.ResourceParameter.java
com.jaspersoft.android.sdk.client.oxm.ResourceProperty.java
com.jaspersoft.android.sdk.client.oxm.ResourcesList.java
com.jaspersoft.android.sdk.client.oxm.control.InputControlOption.java
com.jaspersoft.android.sdk.client.oxm.control.InputControlState.java
com.jaspersoft.android.sdk.client.oxm.control.InputControlStatesList.java
com.jaspersoft.android.sdk.client.oxm.control.InputControl.java
com.jaspersoft.android.sdk.client.oxm.control.InputControlsList.java
com.jaspersoft.android.sdk.client.oxm.control.validation.DateTimeFormatValidationRule.java
com.jaspersoft.android.sdk.client.oxm.control.validation.MandatoryValidationRule.java
com.jaspersoft.android.sdk.client.oxm.control.validation.ValidationRule.java
com.jaspersoft.android.sdk.client.oxm.control.validation.ValidationRulesList.java
com.jaspersoft.android.sdk.client.oxm.converter.ReportStatusConverter.java
com.jaspersoft.android.sdk.client.oxm.report.ErrorDescriptor.java
com.jaspersoft.android.sdk.client.oxm.report.ExecutionRequest.java
com.jaspersoft.android.sdk.client.oxm.report.ExportExecution.java
com.jaspersoft.android.sdk.client.oxm.report.ExportsRequest.java
com.jaspersoft.android.sdk.client.oxm.report.FolderDataResponse.java
com.jaspersoft.android.sdk.client.oxm.report.ReportDataResponse.java
com.jaspersoft.android.sdk.client.oxm.report.ReportExecutionRequest.java
com.jaspersoft.android.sdk.client.oxm.report.ReportExecutionResponse.java
com.jaspersoft.android.sdk.client.oxm.report.ReportOutputResource.java
com.jaspersoft.android.sdk.client.oxm.report.ReportParameter.java
com.jaspersoft.android.sdk.client.oxm.report.ReportParametersList.java
com.jaspersoft.android.sdk.client.oxm.report.ReportStatusResponse.java
com.jaspersoft.android.sdk.client.oxm.report.ReportStatus.java
com.jaspersoft.android.sdk.client.oxm.resource.ResourceLookupSearchCriteria.java
com.jaspersoft.android.sdk.client.oxm.resource.ResourceLookup.java
com.jaspersoft.android.sdk.client.oxm.resource.ResourceLookupsList.java
com.jaspersoft.android.sdk.client.oxm.server.ServerInfo.java
com.jaspersoft.android.sdk.integration.CheckReportStatusRequestTest.java
com.jaspersoft.android.sdk.integration.GetRootFolderDataRequestTest.java
com.jaspersoft.android.sdk.integration.ReportDetailsRequestTest.java
com.jaspersoft.android.sdk.integration.RunReportExportsRequestTest.java
com.jaspersoft.android.sdk.integration.utils.ProtoInstrumentation.java
com.jaspersoft.android.sdk.integration.utils.SampleData.java
com.jaspersoft.android.sdk.ui.adapters.FileArrayAdapter.java
com.jaspersoft.android.sdk.ui.adapters.ResourceDescriptorArrayAdapter.java
com.jaspersoft.android.sdk.ui.adapters.ResourceDescriptorComparator.java
com.jaspersoft.android.sdk.ui.adapters.ResourceLookupArrayAdapter.java
com.jaspersoft.android.sdk.ui.adapters.ResourceLookupComparator.java
com.jaspersoft.android.sdk.ui.adapters.ResourceLookupEndlessAdapter.java
com.jaspersoft.android.sdk.ui.adapters.ResourcePropertyArrayAdapter.java
com.jaspersoft.android.sdk.ui.widget.MultiSelectSpinner.java
com.jaspersoft.android.sdk.util.CookieHttpRequestInterceptor.java
com.jaspersoft.android.sdk.util.FileUtils.java
com.jaspersoft.android.sdk.util.KeepAliveHttpRequestInterceptor.java
com.jaspersoft.android.sdk.util.LocalesHttpRequestInterceptor.java
com.jaspersoft.android.sdk.util.StaticCacheHelper.java