You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
364 lines
24 KiB
364 lines
24 KiB
<html>
|
|
<head>
|
|
<title>TaskList.java</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<style type="text/css">
|
|
.s0 { color: #8c8c8c; font-style: italic;}
|
|
.s1 { color: #080808;}
|
|
.s2 { color: #0033b3;}
|
|
.s3 { color: #1750eb;}
|
|
.s4 { color: #067d17;}
|
|
</style>
|
|
</head>
|
|
<body bgcolor="#ffffff">
|
|
<table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#c0c0c0" >
|
|
<tr><td><center>
|
|
<font face="Arial, Helvetica" color="#000000">
|
|
TaskList.java</font>
|
|
</center></td></tr></table>
|
|
<pre><span class="s0">/*
|
|
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
|
|
*
|
|
* 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.
|
|
*/</span>
|
|
|
|
<span class="s2">package </span><span class="s1">net.micode.notes.gtask.data;</span>
|
|
|
|
<span class="s2">import </span><span class="s1">android.database.Cursor;</span>
|
|
<span class="s2">import </span><span class="s1">android.util.Log;</span>
|
|
|
|
<span class="s2">import </span><span class="s1">net.micode.notes.data.Notes;</span>
|
|
<span class="s2">import </span><span class="s1">net.micode.notes.data.Notes.NoteColumns;</span>
|
|
<span class="s2">import </span><span class="s1">net.micode.notes.gtask.exception.ActionFailureException;</span>
|
|
<span class="s2">import </span><span class="s1">net.micode.notes.tool.GTaskStringUtils;</span>
|
|
|
|
<span class="s2">import </span><span class="s1">org.json.JSONException;</span>
|
|
<span class="s2">import </span><span class="s1">org.json.JSONObject;</span>
|
|
|
|
<span class="s2">import </span><span class="s1">java.util.ArrayList;</span>
|
|
|
|
|
|
<span class="s2">public class </span><span class="s1">TaskList </span><span class="s2">extends </span><span class="s1">Node {</span>
|
|
<span class="s2">private static final </span><span class="s1">String TAG = TaskList.</span><span class="s2">class</span><span class="s1">.getSimpleName();</span>
|
|
|
|
<span class="s2">private int </span><span class="s1">mIndex;</span>
|
|
|
|
<span class="s2">private </span><span class="s1">ArrayList<Task> mChildren;</span>
|
|
|
|
<span class="s2">public </span><span class="s1">TaskList() {</span>
|
|
<span class="s2">super</span><span class="s1">();</span>
|
|
<span class="s1">mChildren = </span><span class="s2">new </span><span class="s1">ArrayList<Task>();</span>
|
|
<span class="s1">mIndex = </span><span class="s3">1</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">JSONObject getCreateAction(</span><span class="s2">int </span><span class="s1">actionId) {</span>
|
|
<span class="s1">JSONObject js = </span><span class="s2">new </span><span class="s1">JSONObject();</span>
|
|
|
|
<span class="s2">try </span><span class="s1">{</span>
|
|
<span class="s0">// action_type</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,</span>
|
|
<span class="s1">GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE);</span>
|
|
|
|
<span class="s0">// action_id</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);</span>
|
|
|
|
<span class="s0">// index</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_INDEX, mIndex);</span>
|
|
|
|
<span class="s0">// entity_delta</span>
|
|
<span class="s1">JSONObject entity = </span><span class="s2">new </span><span class="s1">JSONObject();</span>
|
|
<span class="s1">entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName());</span>
|
|
<span class="s1">entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, </span><span class="s4">"null"</span><span class="s1">);</span>
|
|
<span class="s1">entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE,</span>
|
|
<span class="s1">GTaskStringUtils.GTASK_JSON_TYPE_GROUP);</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);</span>
|
|
|
|
<span class="s1">} </span><span class="s2">catch </span><span class="s1">(JSONException e) {</span>
|
|
<span class="s1">Log.e(TAG, e.toString());</span>
|
|
<span class="s1">e.printStackTrace();</span>
|
|
<span class="s2">throw new </span><span class="s1">ActionFailureException(</span><span class="s4">"fail to generate tasklist-create jsonobject"</span><span class="s1">);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">return </span><span class="s1">js;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">JSONObject getUpdateAction(</span><span class="s2">int </span><span class="s1">actionId) {</span>
|
|
<span class="s1">JSONObject js = </span><span class="s2">new </span><span class="s1">JSONObject();</span>
|
|
|
|
<span class="s2">try </span><span class="s1">{</span>
|
|
<span class="s0">// action_type</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE,</span>
|
|
<span class="s1">GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE);</span>
|
|
|
|
<span class="s0">// action_id</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId);</span>
|
|
|
|
<span class="s0">// id</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_ID, getGid());</span>
|
|
|
|
<span class="s0">// entity_delta</span>
|
|
<span class="s1">JSONObject entity = </span><span class="s2">new </span><span class="s1">JSONObject();</span>
|
|
<span class="s1">entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName());</span>
|
|
<span class="s1">entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted());</span>
|
|
<span class="s1">js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity);</span>
|
|
|
|
<span class="s1">} </span><span class="s2">catch </span><span class="s1">(JSONException e) {</span>
|
|
<span class="s1">Log.e(TAG, e.toString());</span>
|
|
<span class="s1">e.printStackTrace();</span>
|
|
<span class="s2">throw new </span><span class="s1">ActionFailureException(</span><span class="s4">"fail to generate tasklist-update jsonobject"</span><span class="s1">);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">return </span><span class="s1">js;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public void </span><span class="s1">setContentByRemoteJSON(JSONObject js) {</span>
|
|
<span class="s2">if </span><span class="s1">(js != </span><span class="s2">null</span><span class="s1">) {</span>
|
|
<span class="s2">try </span><span class="s1">{</span>
|
|
<span class="s0">// id</span>
|
|
<span class="s2">if </span><span class="s1">(js.has(GTaskStringUtils.GTASK_JSON_ID)) {</span>
|
|
<span class="s1">setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID));</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s0">// last_modified</span>
|
|
<span class="s2">if </span><span class="s1">(js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) {</span>
|
|
<span class="s1">setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED));</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s0">// name</span>
|
|
<span class="s2">if </span><span class="s1">(js.has(GTaskStringUtils.GTASK_JSON_NAME)) {</span>
|
|
<span class="s1">setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME));</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s1">} </span><span class="s2">catch </span><span class="s1">(JSONException e) {</span>
|
|
<span class="s1">Log.e(TAG, e.toString());</span>
|
|
<span class="s1">e.printStackTrace();</span>
|
|
<span class="s2">throw new </span><span class="s1">ActionFailureException(</span><span class="s4">"fail to get tasklist content from jsonobject"</span><span class="s1">);</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public void </span><span class="s1">setContentByLocalJSON(JSONObject js) {</span>
|
|
<span class="s2">if </span><span class="s1">(js == </span><span class="s2">null </span><span class="s1">|| !js.has(GTaskStringUtils.META_HEAD_NOTE)) {</span>
|
|
<span class="s1">Log.w(TAG, </span><span class="s4">"setContentByLocalJSON: nothing is avaiable"</span><span class="s1">);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">try </span><span class="s1">{</span>
|
|
<span class="s1">JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);</span>
|
|
|
|
<span class="s2">if </span><span class="s1">(folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) {</span>
|
|
<span class="s1">String name = folder.getString(NoteColumns.SNIPPET);</span>
|
|
<span class="s1">setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name);</span>
|
|
<span class="s1">} </span><span class="s2">else if </span><span class="s1">(folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) {</span>
|
|
<span class="s2">if </span><span class="s1">(folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER)</span>
|
|
<span class="s1">setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT);</span>
|
|
<span class="s2">else if </span><span class="s1">(folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER)</span>
|
|
<span class="s1">setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX</span>
|
|
<span class="s1">+ GTaskStringUtils.FOLDER_CALL_NOTE);</span>
|
|
<span class="s2">else</span>
|
|
<span class="s1">Log.e(TAG, </span><span class="s4">"invalid system folder"</span><span class="s1">);</span>
|
|
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
|
|
<span class="s1">Log.e(TAG, </span><span class="s4">"error type"</span><span class="s1">);</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">} </span><span class="s2">catch </span><span class="s1">(JSONException e) {</span>
|
|
<span class="s1">Log.e(TAG, e.toString());</span>
|
|
<span class="s1">e.printStackTrace();</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">JSONObject getLocalJSONFromContent() {</span>
|
|
<span class="s2">try </span><span class="s1">{</span>
|
|
<span class="s1">JSONObject js = </span><span class="s2">new </span><span class="s1">JSONObject();</span>
|
|
<span class="s1">JSONObject folder = </span><span class="s2">new </span><span class="s1">JSONObject();</span>
|
|
|
|
<span class="s1">String folderName = getName();</span>
|
|
<span class="s2">if </span><span class="s1">(getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX))</span>
|
|
<span class="s1">folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(),</span>
|
|
<span class="s1">folderName.length());</span>
|
|
<span class="s1">folder.put(NoteColumns.SNIPPET, folderName);</span>
|
|
<span class="s2">if </span><span class="s1">(folderName.equals(GTaskStringUtils.FOLDER_DEFAULT)</span>
|
|
<span class="s1">|| folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE))</span>
|
|
<span class="s1">folder.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM);</span>
|
|
<span class="s2">else</span>
|
|
<span class="s1">folder.put(NoteColumns.TYPE, Notes.TYPE_FOLDER);</span>
|
|
|
|
<span class="s1">js.put(GTaskStringUtils.META_HEAD_NOTE, folder);</span>
|
|
|
|
<span class="s2">return </span><span class="s1">js;</span>
|
|
<span class="s1">} </span><span class="s2">catch </span><span class="s1">(JSONException e) {</span>
|
|
<span class="s1">Log.e(TAG, e.toString());</span>
|
|
<span class="s1">e.printStackTrace();</span>
|
|
<span class="s2">return null</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public int </span><span class="s1">getSyncAction(Cursor c) {</span>
|
|
<span class="s2">try </span><span class="s1">{</span>
|
|
<span class="s2">if </span><span class="s1">(c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == </span><span class="s3">0</span><span class="s1">) {</span>
|
|
<span class="s0">// there is no local update</span>
|
|
<span class="s2">if </span><span class="s1">(c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {</span>
|
|
<span class="s0">// no update both side</span>
|
|
<span class="s2">return </span><span class="s1">SYNC_ACTION_NONE;</span>
|
|
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
|
|
<span class="s0">// apply remote to local</span>
|
|
<span class="s2">return </span><span class="s1">SYNC_ACTION_UPDATE_LOCAL;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
|
|
<span class="s0">// validate gtask id</span>
|
|
<span class="s2">if </span><span class="s1">(!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) {</span>
|
|
<span class="s1">Log.e(TAG, </span><span class="s4">"gtask id doesn't match"</span><span class="s1">);</span>
|
|
<span class="s2">return </span><span class="s1">SYNC_ACTION_ERROR;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">if </span><span class="s1">(c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) {</span>
|
|
<span class="s0">// local modification only</span>
|
|
<span class="s2">return </span><span class="s1">SYNC_ACTION_UPDATE_REMOTE;</span>
|
|
<span class="s1">} </span><span class="s2">else </span><span class="s1">{</span>
|
|
<span class="s0">// for folder conflicts, just apply local modification</span>
|
|
<span class="s2">return </span><span class="s1">SYNC_ACTION_UPDATE_REMOTE;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">} </span><span class="s2">catch </span><span class="s1">(Exception e) {</span>
|
|
<span class="s1">Log.e(TAG, e.toString());</span>
|
|
<span class="s1">e.printStackTrace();</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">return </span><span class="s1">SYNC_ACTION_ERROR;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public int </span><span class="s1">getChildTaskCount() {</span>
|
|
<span class="s2">return </span><span class="s1">mChildren.size();</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public boolean </span><span class="s1">addChildTask(Task task) {</span>
|
|
<span class="s2">boolean </span><span class="s1">ret = </span><span class="s2">false</span><span class="s1">;</span>
|
|
<span class="s2">if </span><span class="s1">(task != </span><span class="s2">null </span><span class="s1">&& !mChildren.contains(task)) {</span>
|
|
<span class="s1">ret = mChildren.add(task);</span>
|
|
<span class="s2">if </span><span class="s1">(ret) {</span>
|
|
<span class="s0">// need to set prior sibling and parent</span>
|
|
<span class="s1">task.setPriorSibling(mChildren.isEmpty() ? </span><span class="s2">null </span><span class="s1">: mChildren</span>
|
|
<span class="s1">.get(mChildren.size() - </span><span class="s3">1</span><span class="s1">));</span>
|
|
<span class="s1">task.setParent(</span><span class="s2">this</span><span class="s1">);</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">return </span><span class="s1">ret;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public boolean </span><span class="s1">addChildTask(Task task, </span><span class="s2">int </span><span class="s1">index) {</span>
|
|
<span class="s2">if </span><span class="s1">(index < </span><span class="s3">0 </span><span class="s1">|| index > mChildren.size()) {</span>
|
|
<span class="s1">Log.e(TAG, </span><span class="s4">"add child task: invalid index"</span><span class="s1">);</span>
|
|
<span class="s2">return false</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">int </span><span class="s1">pos = mChildren.indexOf(task);</span>
|
|
<span class="s2">if </span><span class="s1">(task != </span><span class="s2">null </span><span class="s1">&& pos == -</span><span class="s3">1</span><span class="s1">) {</span>
|
|
<span class="s1">mChildren.add(index, task);</span>
|
|
|
|
<span class="s0">// update the task list</span>
|
|
<span class="s1">Task preTask = </span><span class="s2">null</span><span class="s1">;</span>
|
|
<span class="s1">Task afterTask = </span><span class="s2">null</span><span class="s1">;</span>
|
|
<span class="s2">if </span><span class="s1">(index != </span><span class="s3">0</span><span class="s1">)</span>
|
|
<span class="s1">preTask = mChildren.get(index - </span><span class="s3">1</span><span class="s1">);</span>
|
|
<span class="s2">if </span><span class="s1">(index != mChildren.size() - </span><span class="s3">1</span><span class="s1">)</span>
|
|
<span class="s1">afterTask = mChildren.get(index + </span><span class="s3">1</span><span class="s1">);</span>
|
|
|
|
<span class="s1">task.setPriorSibling(preTask);</span>
|
|
<span class="s2">if </span><span class="s1">(afterTask != </span><span class="s2">null</span><span class="s1">)</span>
|
|
<span class="s1">afterTask.setPriorSibling(task);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">return true</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public boolean </span><span class="s1">removeChildTask(Task task) {</span>
|
|
<span class="s2">boolean </span><span class="s1">ret = </span><span class="s2">false</span><span class="s1">;</span>
|
|
<span class="s2">int </span><span class="s1">index = mChildren.indexOf(task);</span>
|
|
<span class="s2">if </span><span class="s1">(index != -</span><span class="s3">1</span><span class="s1">) {</span>
|
|
<span class="s1">ret = mChildren.remove(task);</span>
|
|
|
|
<span class="s2">if </span><span class="s1">(ret) {</span>
|
|
<span class="s0">// reset prior sibling and parent</span>
|
|
<span class="s1">task.setPriorSibling(</span><span class="s2">null</span><span class="s1">);</span>
|
|
<span class="s1">task.setParent(</span><span class="s2">null</span><span class="s1">);</span>
|
|
|
|
<span class="s0">// update the task list</span>
|
|
<span class="s2">if </span><span class="s1">(index != mChildren.size()) {</span>
|
|
<span class="s1">mChildren.get(index).setPriorSibling(</span>
|
|
<span class="s1">index == </span><span class="s3">0 </span><span class="s1">? </span><span class="s2">null </span><span class="s1">: mChildren.get(index - </span><span class="s3">1</span><span class="s1">));</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">return </span><span class="s1">ret;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public boolean </span><span class="s1">moveChildTask(Task task, </span><span class="s2">int </span><span class="s1">index) {</span>
|
|
|
|
<span class="s2">if </span><span class="s1">(index < </span><span class="s3">0 </span><span class="s1">|| index >= mChildren.size()) {</span>
|
|
<span class="s1">Log.e(TAG, </span><span class="s4">"move child task: invalid index"</span><span class="s1">);</span>
|
|
<span class="s2">return false</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">int </span><span class="s1">pos = mChildren.indexOf(task);</span>
|
|
<span class="s2">if </span><span class="s1">(pos == -</span><span class="s3">1</span><span class="s1">) {</span>
|
|
<span class="s1">Log.e(TAG, </span><span class="s4">"move child task: the task should in the list"</span><span class="s1">);</span>
|
|
<span class="s2">return false</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">if </span><span class="s1">(pos == index)</span>
|
|
<span class="s2">return true</span><span class="s1">;</span>
|
|
<span class="s2">return </span><span class="s1">(removeChildTask(task) && addChildTask(task, index));</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">Task findChildTaskByGid(String gid) {</span>
|
|
<span class="s2">for </span><span class="s1">(</span><span class="s2">int </span><span class="s1">i = </span><span class="s3">0</span><span class="s1">; i < mChildren.size(); i++) {</span>
|
|
<span class="s1">Task t = mChildren.get(i);</span>
|
|
<span class="s2">if </span><span class="s1">(t.getGid().equals(gid)) {</span>
|
|
<span class="s2">return </span><span class="s1">t;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">return null</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public int </span><span class="s1">getChildTaskIndex(Task task) {</span>
|
|
<span class="s2">return </span><span class="s1">mChildren.indexOf(task);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">Task getChildTaskByIndex(</span><span class="s2">int </span><span class="s1">index) {</span>
|
|
<span class="s2">if </span><span class="s1">(index < </span><span class="s3">0 </span><span class="s1">|| index >= mChildren.size()) {</span>
|
|
<span class="s1">Log.e(TAG, </span><span class="s4">"getTaskByIndex: invalid index"</span><span class="s1">);</span>
|
|
<span class="s2">return null</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">return </span><span class="s1">mChildren.get(index);</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">Task getChilTaskByGid(String gid) {</span>
|
|
<span class="s2">for </span><span class="s1">(Task task : mChildren) {</span>
|
|
<span class="s2">if </span><span class="s1">(task.getGid().equals(gid))</span>
|
|
<span class="s2">return </span><span class="s1">task;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s2">return null</span><span class="s1">;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public </span><span class="s1">ArrayList<Task> getChildTaskList() {</span>
|
|
<span class="s2">return this</span><span class="s1">.mChildren;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public void </span><span class="s1">setIndex(</span><span class="s2">int </span><span class="s1">index) {</span>
|
|
<span class="s2">this</span><span class="s1">.mIndex = index;</span>
|
|
<span class="s1">}</span>
|
|
|
|
<span class="s2">public int </span><span class="s1">getIndex() {</span>
|
|
<span class="s2">return this</span><span class="s1">.mIndex;</span>
|
|
<span class="s1">}</span>
|
|
<span class="s1">}</span>
|
|
</pre>
|
|
</body>
|
|
</html> |