Android Open Source - caddisfly-app-camera Form Widget






From Project

Back to project page caddisfly-app-camera.

License

The source code is released under:

GNU General Public License

If you think the Android project caddisfly-app-camera 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) TernUp Research Labs//w w w  . j  a  v  a  2 s .  c om
 *
 * This file is part of Caddisfly
 *
 * Caddisfly is free software: you can redistribute it and modify it under the terms of
 * the GNU Affero General Public License (AGPL) as published by the Free Software Foundation,
 * either version 3 of the License or any later version.
 *
 * Caddisfly 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 Affero General Public License included below for more details.
 *
 * The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>.
 */

package com.ternup.caddisfly.widget;

import com.ternup.caddisfly.R;

import org.json.JSONObject;

import android.content.Context;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

public abstract class FormWidget {

    protected final String _property;

    protected final LinearLayout _layout;

    protected final TextView _label;

    protected View _view;

    protected String _displayText;

    protected int _priority;
    //protected FormActivity.FormWidgetToggleHandler _handler;

    protected HashMap<String, ArrayList<String>> _toggles;

    public FormWidget(Context context, String name) {
        _layout = new LinearLayout(context);
        //_layout.setLayoutParams( FormActivity.defaultLayoutParams );
        _layout.setOrientation(LinearLayout.VERTICAL);

        _property = name;
        _displayText = name.replace("_", " ");
        _displayText = toTitleCase(_displayText);

        _label = new TextView(context);
        _label.setText(getDisplayText());
        _label.setTextSize(context.getResources().getDimension(R.dimen.labelTextSize));

        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);

        params.bottomMargin = 0;
        params.topMargin = 10;

        _label.setLayoutParams(params);
        _label.setAllCaps(true);
        _label.setTextColor(context.getResources().getColor(R.color.labelTextColor));
        _layout.addView(_label);


    }

    // -----------------------------------------------
    //
    // view
    //
    // -----------------------------------------------

    /**
     * return LinearLayout containing this widget's view elements
     */
    public View getView() {
        return _layout;
    }

    /**
     * toggles the visibility of this widget
     */
    public void setVisibility(int value) {
        _layout.setVisibility(value);
    }

    // -----------------------------------------------
    //
    // set / get value
    //
    // -----------------------------------------------

    /**
     * returns value of this widget as String
     */
    public String getValue() {
        return "";
    }

    /**
     * sets value of this widget, method should be overridden in sub-class
     */
    public void setValue(String value) {
        // -- override
    }

    // -----------------------------------------------
    //
    // modifiers
    //
    // -----------------------------------------------

    /**
     * sets the hint for the widget, method should be overridden in sub-class
     */
    public void setHint(String value) {
        // -- override
    }

    /**
     * sets an object that contains keys for special properties on an object
     */
    public void setModifiers(JSONObject modifiers) {
        // -- override
    }

    // -----------------------------------------------
    //
    // set / get priority
    //
    // -----------------------------------------------

    /**
     * returns visual priority
     */
    public int getPriority() {
        return _priority;
    }

    /**
     * sets the visual priority of this widget
     * essentially this means it's physical location in the form
     */
    public void setPriority(int value) {
        _priority = value;
    }

    // -----------------------------------------------
    //
    // property name mods
    //
    // -----------------------------------------------

    /**
     * returns the un-modified name of the property this widget represents
     */
    public String getPropertyName() {
        return _property;
    }

    /**
     * returns a title case version of this property
     */
    public String getDisplayText() {
        return _displayText;
    }

    /**
     * takes a property name and modifies
     */
    public String toTitleCase(String s) {
        char[] chars = s.trim().toLowerCase().toCharArray();
        boolean found = false;

        for (int i = 0; i < chars.length; i++) {
            if (!found && Character.isLetter(chars[i])) {
                chars[i] = Character.toUpperCase(chars[i]);
                found = true;
            } else if (Character.isWhitespace(chars[i])) {
                found = false;
            }
        }

        return String.valueOf(chars);
    }

    // -----------------------------------------------
    //
    // toggles
    //
    // -----------------------------------------------

    /**
     * sets the list of toggles for this widgets
     * the structure of the data looks like this:
     * HashMap<value of property for visibility, ArrayList<list of properties to toggle on>>
     */
    public void setToggles(HashMap<String, ArrayList<String>> toggles) {
        _toggles = toggles;
    }

    /**
     * return list of widgets to toggle on
     */
    public ArrayList<String> getToggledOn() {
        if (_toggles == null) {
            return new ArrayList<String>();
        }

        if (_toggles.get(getValue()) != null) {
            return _toggles.get(getValue());
        } else {
            return new ArrayList<String>();
        }
    }

    /**
     * return list of widgets to toggle off
     */
    public ArrayList<String> getToggledOff() {
        ArrayList<String> result = new ArrayList<String>();
        if (_toggles == null) {
            return result;
        }

        Set<String> set = _toggles.keySet();

        for (String key : set) {
            if (!key.equals(getValue())) {
                ArrayList<String> list = _toggles.get(key);
                if (list == null) {
                    return new ArrayList<String>();
                }
                for (String aList : list) {
                    result.add(aList);
                }
            }
        }

        return result;
    }

/*
        public void setToggleHandler( FormActivity.FormWidgetToggleHandler handler ){
    _handler = handler;
  }
*/
}




Java Source Code List

com.ternup.caddisfly.activity.MainActivityBase.java
com.ternup.caddisfly.activity.MainActivity.java
com.ternup.caddisfly.activity.PhotoIntentActivity.java
com.ternup.caddisfly.activity.ProgressActivityBase.java
com.ternup.caddisfly.activity.ProgressActivity.java
com.ternup.caddisfly.activity.ProgressActivity.java
com.ternup.caddisfly.activity.SurveyActivity.java
com.ternup.caddisfly.activity.VideoActivity.java
com.ternup.caddisfly.adapter.CalibrateListAdapter.java
com.ternup.caddisfly.adapter.CheckboxSimpleCursorAdapter.java
com.ternup.caddisfly.adapter.GalleryListAdapter.java
com.ternup.caddisfly.adapter.NavDrawerListAdapter.java
com.ternup.caddisfly.adapter.SwatchesAdapter.java
com.ternup.caddisfly.app.GlobalsBase.java
com.ternup.caddisfly.app.Globals.java
com.ternup.caddisfly.app.Globals.java
com.ternup.caddisfly.app.MainApp.java
com.ternup.caddisfly.component.CameraZoomPreference.java
com.ternup.caddisfly.component.ConfirmCheckBoxPreference.java
com.ternup.caddisfly.component.ConfirmPreference.java
com.ternup.caddisfly.component.NothingSelectedSpinnerAdapter.java
com.ternup.caddisfly.component.NumberPickerPreference.java
com.ternup.caddisfly.database.DataStorage.java
com.ternup.caddisfly.database.DataStorage.java
com.ternup.caddisfly.database.LocationTable.java
com.ternup.caddisfly.database.TestDatabaseHelper.java
com.ternup.caddisfly.database.TestTable.java
com.ternup.caddisfly.fragment.AboutFragment.java
com.ternup.caddisfly.fragment.AboutItFragment.java
com.ternup.caddisfly.fragment.BaseFragment.java
com.ternup.caddisfly.fragment.CalibrateFragmentBase.java
com.ternup.caddisfly.fragment.CalibrateFragment.java
com.ternup.caddisfly.fragment.CalibrateItemFragmentBase.java
com.ternup.caddisfly.fragment.CalibrateItemFragment.java
com.ternup.caddisfly.fragment.CameraFragment.java
com.ternup.caddisfly.fragment.DetailsFragment.java
com.ternup.caddisfly.fragment.FormFragment.java
com.ternup.caddisfly.fragment.HelpFragment.java
com.ternup.caddisfly.fragment.HomeFragment.java
com.ternup.caddisfly.fragment.LocationDetailsFragment.java
com.ternup.caddisfly.fragment.LocationFragment.java
com.ternup.caddisfly.fragment.LocationListFragment.java
com.ternup.caddisfly.fragment.NavigationDrawerFragment.java
com.ternup.caddisfly.fragment.NotesFragment.java
com.ternup.caddisfly.fragment.PhotoFragment.java
com.ternup.caddisfly.fragment.ResultFragment.java
com.ternup.caddisfly.fragment.ResultListFragment.java
com.ternup.caddisfly.fragment.SettingsFragment.java
com.ternup.caddisfly.fragment.SwatchFragment.java
com.ternup.caddisfly.model.ColorInfo.java
com.ternup.caddisfly.model.Dynamics.java
com.ternup.caddisfly.model.NavigationDrawerItem.java
com.ternup.caddisfly.provider.LocationContentProvider.java
com.ternup.caddisfly.provider.TestContentProvider.java
com.ternup.caddisfly.service.CameraServiceReceiver.java
com.ternup.caddisfly.service.CameraService.java
com.ternup.caddisfly.util.AlertUtils.java
com.ternup.caddisfly.util.AudioUtils.java
com.ternup.caddisfly.util.ColorUtils.java
com.ternup.caddisfly.util.DataHelper.java
com.ternup.caddisfly.util.DateUtils.java
com.ternup.caddisfly.util.DownloadManager.java
com.ternup.caddisfly.util.FileUtils.java
com.ternup.caddisfly.util.ImageUtils.java
com.ternup.caddisfly.util.LocationUtils.java
com.ternup.caddisfly.util.NetworkUtils.java
com.ternup.caddisfly.util.PhotoHandler.java
com.ternup.caddisfly.util.PreferencesHelper.java
com.ternup.caddisfly.util.PreferencesUtils.java
com.ternup.caddisfly.util.ShakeDetector.java
com.ternup.caddisfly.util.ShowCamera.java
com.ternup.caddisfly.util.TextJustifyUtils.java
com.ternup.caddisfly.util.TimeUtils.java
com.ternup.caddisfly.util.UpdateCheckTask.java
com.ternup.caddisfly.util.UpdateChecker.java
com.ternup.caddisfly.util.UpgradeCheckTask.java
com.ternup.caddisfly.util.WebClient.java
com.ternup.caddisfly.view.LineChartView.java
com.ternup.caddisfly.view.SlidingTabLayout.java
com.ternup.caddisfly.view.SlidingTabStrip.java
com.ternup.caddisfly.widget.FormEditText.java
com.ternup.caddisfly.widget.FormSpinner.java
com.ternup.caddisfly.widget.FormWidget.java
com.ternup.caddisfly.widget.MultiLineEditText.java
com.ternup.caddisfly.widget.TextViewEx.java
org.akvo.mobile.caddisfly.activity.MainActivity.java
org.akvo.mobile.caddisfly.component.CalibratePreference.java
org.akvo.mobile.caddisfly.fragment.CalibrateFragment.java
org.akvo.mobile.caddisfly.fragment.CalibrateItemFragment.java
org.akvo.mobile.caddisfly.fragment.CalibrateMessageFragment.java
org.akvo.mobile.caddisfly.fragment.HelpFragment.java
org.akvo.mobile.caddisfly.fragment.ItemFragment.java
org.akvo.mobile.caddisfly.fragment.ResultFragment.java
org.akvo.mobile.caddisfly.fragment.StartFragment.java
org.akvo.mobile.caddisfly.fragment.dummy.DummyContent.java