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;
}