Java源码示例:net.fortuna.ical4j.model.property.Trigger

示例1
public void setDisplayAlarmTrigger(Trigger newTrigger) {
    VAlarm alarm = getDisplayAlarm();
    if(alarm==null) {
        return;
    }
    
    Trigger oldTrigger = (Trigger) alarm.getProperties().getProperty(
            Property.TRIGGER);
    if (oldTrigger != null) {
        alarm.getProperties().remove(oldTrigger);
    }

    if(newTrigger!=null) {
        alarm.getProperties().add(newTrigger);
    }
}
 
示例2
public void setDisplayAlarmTriggerDate(DateTime triggerDate) {
    VAlarm alarm = getDisplayAlarm();
    if(alarm==null) {
        return;
    }

    Trigger oldTrigger = (Trigger) alarm.getProperties().getProperty(
            Property.TRIGGER);
    if (oldTrigger != null) {
        alarm.getProperties().remove(oldTrigger);
    }
    
    Trigger newTrigger = new Trigger();
    newTrigger.getParameters().add(Value.DATE_TIME);
    newTrigger.setDateTime(triggerDate);
    
    alarm.getProperties().add(newTrigger);
}
 
示例3
/**
 * Sets display alarm trigger.
 * @param newTrigger The new trigger.
 */
public void setDisplayAlarmTrigger(Trigger newTrigger) {
    VAlarm alarm = getDisplayAlarm();
    if (alarm == null) {
        return;
    }
    
    Trigger oldTrigger = (Trigger) alarm.getProperties().getProperty(Property.TRIGGER);
    if (oldTrigger != null) {
        alarm.getProperties().remove(oldTrigger);
    }

    if (newTrigger != null) {
        alarm.getProperties().add(newTrigger);
    }
}
 
示例4
/**
 * Sets display alarm trigger date.
 * @param triggerDate The trigger date.
 */
public void setDisplayAlarmTriggerDate(DateTime triggerDate) {
    VAlarm alarm = getDisplayAlarm();
    if (alarm == null) {
        return;
    }
    Trigger oldTrigger = (Trigger) alarm.getProperties().getProperty(Property.TRIGGER);
    if (oldTrigger != null) {
        alarm.getProperties().remove(oldTrigger);
    }
    
    Trigger newTrigger = new Trigger();
    newTrigger.getParameters().add(Value.DATE_TIME);
    newTrigger.setDateTime(triggerDate);
    
    alarm.getProperties().add(newTrigger);
}
 
示例5
/**
 * Return the list of dates that an alarm will trigger.
 * @param alarm alarm component
 * @param parent parent compoennt (VEvent,VToDo)
 * @return dates that alarm is configured to trigger
 */
public static List<Date> getTriggerDates(VAlarm alarm, Component parent) {
    ArrayList<Date> dates = new ArrayList<Date>();
    Trigger trigger = alarm.getTrigger();
    if(trigger==null) {
        return dates;
    }
    
    Date initialTriggerDate = getTriggerDate(trigger, parent);
    if(initialTriggerDate==null) {
        return dates;
    }
    
    dates.add(initialTriggerDate);
    
    Duration dur = alarm.getDuration();
    if(dur==null) {
        return dates;
    }
    Repeat repeat = alarm.getRepeat(); 
    if(repeat==null) {
        return dates;
    }
    
    Date nextTriggerDate = initialTriggerDate;
    for(int i=0;i<repeat.getCount();i++) {
        nextTriggerDate = Dates.getInstance(dur.getDuration().getTime(nextTriggerDate), nextTriggerDate);
        dates.add(nextTriggerDate);
    }
    
    return dates;
}
 
示例6
/**
 * A VALARM component is said to overlap a given time range if the
    following condition holds:

       (start <= trigger-time) AND (end > trigger-time)

   A VALARM component can be defined such that it triggers repeatedly.
   Such a VALARM component is said to overlap a given time range if at
   least one of its triggers overlaps the time range.
   @param comps The component list.
   @param filter The time range filter.
   @return The result.
 */
        
private boolean evaluateVAlarmTimeRange(ComponentList<? extends Component> comps, TimeRangeFilter filter) {
    
    // VALARAM must have parent VEVENT or VTODO
    Component parent = stack.peek();
    if(parent==null) {
        return false;
    }
   
    // See if trigger-time overlaps the time range for each VALARM
    for(Component component : comps) {
        if (!(component instanceof VAlarm)) {
            continue;
        }
        VAlarm alarm = (VAlarm) component;
        Trigger trigger = alarm.getTrigger();
        if(trigger==null) {
            continue;
        }
        
        List<Date> triggerDates = ICalendarUtils.getTriggerDates(alarm, parent);
        
        for(Date triggerDate: triggerDates) {
            if(filter.getPeriod().getStart().compareTo(triggerDate)<=0 &&
               filter.getPeriod().getEnd().after(triggerDate)) {
               return true;
            }
        }
    }
    
    return false;
}
 
示例7
public Trigger getDisplayAlarmTrigger() {
    VAlarm alarm = getDisplayAlarm();
    if(alarm==null) {
        return null;
    }
    
    return (Trigger) alarm.getProperties().getProperty(Property.TRIGGER);
}
 
示例8
/**
 * Override to handle "missing" trigger by searching for a
 * custom X-PARAM "X-OSAF-MISSING".  If present, then this
 * trigger is "missing" and null should be returned, since
 * for now we are representing "missing" values using null.
 */
@Override
public Trigger getDisplayAlarmTrigger() {
    Trigger trigger =  super.getDisplayAlarmTrigger();
    if(trigger!=null && isMissing(trigger)) {
        return null;
    }
    else {
        return trigger;
    }
}
 
示例9
public static boolean hasCustomAlarm(NoteItem note) {
    BaseEventStamp es = StampUtils.getBaseEventStamp(note);
    if (es == null) {
        return note.getReminderTime() != null;
    }

    Trigger trigger = es.getDisplayAlarmTrigger();
    return trigger != null && trigger.isUtc();
}
 
示例10
public static java.util.Date getCustomAlarm(NoteItem note) {
    BaseEventStamp es = StampUtils.getBaseEventStamp(note);
    if (es == null) {
        return note.getReminderTime();
    }

    Trigger trigger = es.getDisplayAlarmTrigger();
    if (trigger != null && trigger.isUtc()) {
        return trigger.getDateTime();
    }

    return null;
}
 
示例11
@Override
public Trigger getDisplayAlarmTrigger() {
    Trigger trigger =  super.getDisplayAlarmTrigger();
    if (trigger!=null && isMissing(trigger)) {
        return null;
    }
    else {
        return trigger; 
    }
}
 
示例12
/**
 * Gets display alarm trigger.
 * @return The trigger.
 */
public Trigger getDisplayAlarmTrigger() {
    VAlarm alarm = getDisplayAlarm();
    if (alarm == null) {
        return null;
    }
    
    return (Trigger) alarm.getProperties().getProperty(Property.TRIGGER);
}
 
示例13
/**
 * Return the date that a trigger refers to, which can be an absolute
 * date or a date relative to the start or end time of a parent 
 * component (VEVENT/VTODO).
 * @param trigger The trigger.
 * @param parent The component.
 * @return date of trigger.
 */
public static Date getTriggerDate(Trigger trigger, Component parent) {
    
    if(trigger==null) {
        return null;
    }
    
    // if its absolute then we are done
    if(trigger.getDateTime()!=null) {
        return trigger.getDateTime();
    }
    
    // otherwise we need a start date if VEVENT
    DtStart start = (DtStart) parent.getProperty(Property.DTSTART);
    if(start==null && parent instanceof VEvent) {
        return null;
    }
    
    // is trigger relative to start or end
    Related related = (Related) trigger.getParameter(Parameter.RELATED);
    if(related==null || related.equals(Related.START)) {    
        // must have start date
        if(start==null) {
            return null;
        }
        
        // relative to start
        return Dates.getInstance(trigger.getDuration().getTime(start.getDate()), start.getDate());
    } else {
        // relative to end
        Date endDate = null;
        
        // need an end date or duration or due 
        DtEnd end = (DtEnd) parent.getProperty(Property.DTEND);
        if(end!=null) {
            endDate = end.getDate();
        }
       
        if(endDate==null) {
            Duration dur = (Duration) parent.getProperty(Property.DURATION);
            if(dur!=null && start!=null) {
                endDate= Dates.getInstance(dur.getDuration().getTime(start.getDate()), start.getDate());
            }
        }
        
        if(endDate==null) {
            Due due = (Due) parent.getProperty(Property.DUE);
            if(due!=null) {
                endDate = due.getDate();
            }
        }
        
        // require end date
        if(endDate==null) {
            return null;
        }
        
        return Dates.getInstance(trigger.getDuration().getTime(endDate), endDate);
    }
}
 
示例14
/**
 * Sets calendar attributes.
 * @param note The note item.
 * @param event The event.
 */
private void setCalendarAttributes(NoteItem note, VEvent event) {
    
    // UID (only set if master)
    if(event.getUid()!=null && note.getModifies()==null) {
        note.setIcalUid(event.getUid().getValue());
    }
    
    // for now displayName is limited to 1024 chars
    if (event.getSummary() != null) {
        note.setDisplayName(StringUtils.substring(event.getSummary()
                .getValue(), 0, 1024));
    }

    if (event.getDescription() != null) {
        note.setBody(event.getDescription().getValue());
    }

    // look for DTSTAMP
    if(event.getDateStamp()!=null) {
        note.setClientModifiedDate(event.getDateStamp().getDate());
    }
    
    // look for absolute VALARM
    VAlarm va = ICalendarUtils.getDisplayAlarm(event);
    if (va != null && va.getTrigger()!=null) {
        Trigger trigger = va.getTrigger();
        Date reminderTime = trigger.getDateTime();
        if (reminderTime != null) {
            note.setReminderTime(reminderTime);
        }
    }

    // calculate triage status based on start date
    java.util.Date now =java.util.Calendar.getInstance().getTime();
    Date eventStartDate = event.getStartDate() != null && event.getStartDate().getDate() != null 
    		? event.getStartDate().getDate()
    		:new Date();
    boolean later = eventStartDate.after(now);
    int code = later ? TriageStatus.CODE_LATER : TriageStatus.CODE_DONE;
    
    TriageStatus triageStatus = note.getTriageStatus();
    
    // initialize TriageStatus if not present
    if (triageStatus == null) {
        triageStatus = TriageStatusUtil.initialize(entityFactory
                .createTriageStatus());
        note.setTriageStatus(triageStatus);
    }

    triageStatus.setCode(code);
    
    // check for X-OSAF-STARRED
    if ("TRUE".equals(ICalendarUtils.getXProperty(X_OSAF_STARRED, event))) {
        TaskStamp ts = StampUtils.getTaskStamp(note);
        if (ts == null) {
            note.addStamp(entityFactory.createTaskStamp());
        }
    }
}
 
示例15
/**
 * Sets calendar attributes.
 * @param note The note item.
 * @param task The task vToDo.
 */
private void setCalendarAttributes(NoteItem note, VToDo task) {
    
    // UID
    if(task.getUid()!=null) {
        note.setIcalUid(task.getUid().getValue());
    }
    
    // for now displayName is limited to 1024 chars
    if (task.getSummary() != null) {
        note.setDisplayName(StringUtils.substring(task.getSummary()
                .getValue(), 0, 1024));
    }

    if (task.getDescription() != null) {
        note.setBody(task.getDescription().getValue());
    }

    // look for DTSTAMP
    if (task.getDateStamp() != null) {
        note.setClientModifiedDate(task.getDateStamp().getDate());
    }

    // look for absolute VALARM
    VAlarm va = ICalendarUtils.getDisplayAlarm(task);
    if (va != null && va.getTrigger()!=null) {
        Trigger trigger = va.getTrigger();
        Date reminderTime = trigger.getDateTime();
       if (reminderTime != null) {
            note.setReminderTime(reminderTime);
       }
    }
    
    // look for COMPLETED or STATUS:COMPLETED
    Completed completed = task.getDateCompleted();
    Status status = task.getStatus();
    TriageStatus ts = note.getTriageStatus();
    
    // Initialize TriageStatus if necessary
    if(completed!=null || Status.VTODO_COMPLETED.equals(status)) {
        if (ts == null) {
            ts = TriageStatusUtil.initialize(entityFactory
                    .createTriageStatus());
            note.setTriageStatus(ts);
        }
        
        // TriageStatus.code will be DONE
        note.getTriageStatus().setCode(TriageStatus.CODE_DONE);
        
        // TriageStatus.rank will be the COMPLETED date if present
        // or currentTime
        if(completed!=null) {
            note.getTriageStatus().setRank(
                    TriageStatusUtil.getRank(completed.getDate().getTime()));
        }
        else {
            note.getTriageStatus().setRank(
                    TriageStatusUtil.getRank(System.currentTimeMillis()));
        }
    }
    
    // check for X-OSAF-STARRED
    if ("TRUE".equals(ICalendarUtils.getXProperty(X_OSAF_STARRED, task))) {
        TaskStamp taskStamp = StampUtils.getTaskStamp(note);
        if (taskStamp == null) {
            note.addStamp(entityFactory.createTaskStamp());
        }
    }
}
 
示例16
public JsonTriggerAdapter(Trigger property) {
    _trigger = property;
}
 
示例17
public Trigger getTrigger() {
    return _trigger;
}
 
示例18
/**
 * Return the Trigger of the first display alarm on the event
 * @return trigger of the first display alarm
 */
public Trigger getDisplayAlarmTrigger();
 
示例19
/**
 * Set the trigger property of the first display alarm on the event.
 * @param newTrigger trigger
 */
public void setDisplayAlarmTrigger(Trigger newTrigger);
 
示例20
/**
 * Compose the date property from its constituent parts.
 *      * 
 * @param propertyName
 * @return
 */
public Trigger compose(String propertyName) {
    return this._trigger;
}