AgendaViewDay.java :  » UnTagged » stuassistant » com » stuassistant » mycalendar » agenda » Android Open Source

Android Open Source » UnTagged » stuassistant 
stuassistant » com » stuassistant » mycalendar » agenda » AgendaViewDay.java
package com.stuassistant.mycalendar.agenda;


import java.util.ArrayList;

import com.stuassistant.mycalendar.dataview.DataView;
import com.stuassistant.mycalendar.dataview.DataViewItem;
import com.stuassistant.mycalendar.main.AnCal;
import com.stuassistant.mycalendar.views.ViewDayHourItem;
import com.stuassistant.mycalendar.views.ViewTodayItemAppointment;
import com.stuassistant.mycalendar.views.ViewTodayItemHeader;

import android.graphics.Paint;
import android.widget.LinearLayout;


public class AgendaViewDay extends AgendaView
{  
  
  private ArrayList<LinearLayout> vecHourItems = new ArrayList<LinearLayout>(); 

  
  public ViewDayHourItem.OnItemClick onNewApptItemClick = new ViewDayHourItem.OnItemClick()
  {
    public void OnClick(ViewDayHourItem item)
    {
      doHourOfDayClick(item, ViewTodayItemHeader.ViewType.Appointments, item.GetHour(), item.GetMinutes());
    }
  };

  
  private int iTextHeight = 0;
  private int iHourWidth = 0;
  private int iTimeWidth = 0;
  private int iUSTimeMarkWidth = 0;
  private int iSpaceWidthTime = 0;
  private int iSpaceWidthMinutes = 0; 
  private int iSpaceWidthUSTimeMark = 0;
  

  private Paint mpt = new Paint();
  
  
  public AgendaViewDay(AnCal main)
  {
    super(main);
    iTextHeight = ViewDayHourItem.GetTextHeight(mpt);
    iHourWidth = ViewDayHourItem.GetSpaceWidthHour(mpt);
    iTimeWidth = ViewDayHourItem.GetSpaceWidthTime(mpt);
    iUSTimeMarkWidth = ViewDayHourItem.GetSpaceWidthUSTimeMark(mpt);
    iSpaceWidthTime = ViewTodayItemAppointment.GetSpaceWidthTime(mpt);
    iSpaceWidthMinutes = ViewTodayItemAppointment.GetSpaceWidthMinutes(mpt);
    iSpaceWidthUSTimeMark = ViewTodayItemAppointment.GetSpaceWidthUSTimeMark(mpt);
  }

  @Override
  public int GetViewType()
  {
    return viewMode.DAY;
  }
  
  @Override
  public int GetViewIndex()
  {
    return 1;
  }

  @Override
  public void Rebuild()
  {
    llayParent.removeAllViews();
    
    vecHourItems.clear();
        
    //build 24 hour day view
    for (int iHour = 0; iHour < 24; iHour++)
    {
      ViewDayHourItem item = new ViewDayHourItem(main, iHour, iTextHeight);
      item.SetItemData(main.prefs.b24HourMode, iHourWidth, iTimeWidth, iUSTimeMarkWidth);
      llayParent.addView(item);
      vecHourItems.add(iHour, item);
    }  
  }

  public void RemoveChildViewsFromAllHourItems()
  {
    for (int iHour = 0; iHour < vecHourItems.size(); iHour++)
    {
      LinearLayout item = vecHourItems.get(iHour);
      if (item != null)
        item.removeAllViewsInLayout();
    }  
    llayParent.invalidate();
  }

  @Override
  public void RebuildViewAppointments(DataView dataView)
  {
    final boolean bIsViewToday = IsViewToday();
    final int iCurrentHour = getTodayCurrentHour();

    RemoveChildViewsFromAllHourItems();

    
    for (int iHour = 0; iHour < vecHourItems.size(); iHour++)
    {
      ViewDayHourItem item = (ViewDayHourItem)vecHourItems.get(iHour);
      item.SetItemData(main.prefs.b24HourMode, iHourWidth, iTimeWidth, iUSTimeMarkWidth);      
      item.SetCurrentHour((bIsViewToday)?iCurrentHour:-1);      
      item.requestLayout();
    }
      
  
    for (int i = 0; i < dataView.GetRowsCountTotal(); i++)
    {
      DataViewItem row = dataView.GetRow(i, this.GetViewType());
      if (row != null)
      {        
        int iHour = row.GetStartHour();
        ViewTodayItemAppointment item = new ViewTodayItemAppointment(main);
        item.SetRowId(row.lID);
        item.SetItemTime(row.GetStartHour(), row.GetStartMinute(), true, main.prefs.b24HourMode, iSpaceWidthTime, iSpaceWidthMinutes, iSpaceWidthUSTimeMark);
        item.SetItemData(row.sSubject, row.bAlarm, row.IsRepeat());        
        item.SetItemClick(onApptItemClick);
              
        ViewDayHourItem hourItem = (ViewDayHourItem)vecHourItems.get(iHour);        
        if (hourItem != null)
        {
          hourItem.addView(item, lparams);
        }
      }
    }
      
    
    for (int iHour = 0; iHour < 24; iHour++)
    {
      ViewDayHourItem item = (ViewDayHourItem)vecHourItems.get(iHour);
      item.UpdateHeight();
      item.SetItemClick(onNewApptItemClick);
    }
  }
  
  public void RebuildViewNotes(DataView dataView)
  {
  }

  public void RebuildViewTasks(DataView dataView)
  {
  }

  @Override
  public void UpdateTimeFormat()
  {
    for (int iHour = 0; iHour < vecHourItems.size(); iHour++)
    {  
      ViewDayHourItem item = (ViewDayHourItem)vecHourItems.get(iHour);
      if (item != null)
        item.UpdateTimeFormat(main.prefs.b24HourMode, iHourWidth, iTimeWidth, iUSTimeMarkWidth);
    }  
  }
  
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.