use of net.fortuna.ical4j.model.ValidationException in project openhab1-addons by openhab.
the class Util method storeToDisk.
public static void storeToDisk(String calendarId, String filename, Calendar calendar) {
File cacheFile = getCacheFile(calendarId, filename);
try {
FileOutputStream fout = new FileOutputStream(cacheFile);
CalendarOutputter outputter = new CalendarOutputter();
outputter.setValidating(false);
outputter.output(calendar, fout);
fout.flush();
fout.close();
} catch (IOException e) {
log.error("cannot store event '{}' to disk (path={}): {}", filename, cacheFile.getAbsoluteFile(), e.getMessage());
} catch (ValidationException e) {
log.error("cannot store event '{}' to disk (path={}): {}", filename, cacheFile.getAbsoluteFile(), e.getMessage());
}
}
use of net.fortuna.ical4j.model.ValidationException in project LAMSADE-tools by LAntoine.
the class Conference method generateCalendarFile.
/**
* Generates a vcal file with the conference details with this object's data
*
* @param filename:
* the path including the name of the file to be generated
* @throws IOException
* @throws ValidationException
* @throws ParserException
*
* @author Javier MartÃnez
*/
public void generateCalendarFile(String filename) throws IOException, ValidationException, ParserException {
String calFile = filename;
// start time
java.util.Calendar startCal = java.util.Calendar.getInstance();
startCal.setTime(java.sql.Date.valueOf(getStart_date()));
// end time
java.util.Calendar endCal = java.util.Calendar.getInstance();
endCal.setTime(java.sql.Date.valueOf(getEnd_date()));
String subject = "Conference";
String description = "A conference with a fee of " + getEntry_fee();
String hostEmail = "";
// Creating a new calendar
net.fortuna.ical4j.model.Calendar calendar = new net.fortuna.ical4j.model.Calendar();
calendar.getProperties().add(new ProdId("-//Ben Fortuna//iCal4j 1.0//EN"));
calendar.getProperties().add(Version.VERSION_2_0);
calendar.getProperties().add(CalScale.GREGORIAN);
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyyMMdd'T'hhmmss'Z'");
String strDate = sdFormat.format(startCal.getTime());
net.fortuna.ical4j.model.Date startDt = null;
try {
startDt = new net.fortuna.ical4j.model.Date(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
long diff = endCal.getTimeInMillis() - startCal.getTimeInMillis();
int min = (int) (diff / (1000 * 60));
Dur dur = new Dur(0, 0, min, 0);
// Creating a meeting event
VEvent meeting = new VEvent(startDt, dur, subject);
// This is where you would add a location if there was one
// meeting.getProperties().add(new Location(location));
meeting.getProperties().add(new Description());
try {
meeting.getProperties().getProperty(Property.DESCRIPTION).setValue(description);
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
calendar.getComponents().add(meeting);
FileOutputStream fout = null;
try {
fout = new FileOutputStream(calFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
CalendarOutputter outputter = new CalendarOutputter();
outputter.setValidating(false);
try {
outputter.output(calendar, fout);
} catch (IOException e) {
e.printStackTrace();
} catch (ValidationException e) {
e.printStackTrace();
}
System.out.println(meeting);
}
use of net.fortuna.ical4j.model.ValidationException in project LAMSADE-tools by LAntoine.
the class Tester method main.
public static void main(String[] args) throws SQLException {
System.setProperty("SWT_GTK3", "0");
Display display = new Display();
Shell shell = new Shell(display);
// shell.setSize(300, 300);
shell.setText("Conference List");
GridLayout gridLayout = new GridLayout();
shell.setLayout(gridLayout);
shell.setLocation(400, 200);
shell.layout(true, true);
final Point newSize = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
shell.setSize(new Point(888, 661));
/*
* Initialize Group conferencesInfos which will include : -The Grid data
* which will display conferences
*
* -The fields that will allow the user to add a new conference in the
* database
*/
Group grpUserDetails = new Group(shell, SWT.NONE);
GridData gd_grpUserDetails = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
gd_grpUserDetails.widthHint = 848;
gd_grpUserDetails.heightHint = 155;
grpUserDetails.setLayoutData(gd_grpUserDetails);
grpUserDetails.setText("User Details");
Label lblFirstname = new Label(grpUserDetails, SWT.NONE);
lblFirstname.setBounds(10, 26, 70, 15);
lblFirstname.setText("First Name");
Label lblNewLabel_1 = new Label(grpUserDetails, SWT.NONE);
lblNewLabel_1.setBounds(10, 53, 55, 15);
lblNewLabel_1.setText("Last Name");
txt_firstname = new Text(grpUserDetails, SWT.BORDER);
txt_firstname.setBounds(86, 23, 98, 21);
txt_lastname = new Text(grpUserDetails, SWT.BORDER);
txt_lastname.setBounds(86, 50, 98, 21);
/*
* Handle the User Info's Search Throws exception if firstname or
* lastname is wrong
*/
Button btn_searchInfo = new Button(grpUserDetails, SWT.NONE);
btn_searchInfo.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
try {
UserDetails user = GetInfosFromYearbook.getUserDetails(txt_lastname.getText(), txt_firstname.getText());
txt_function.setText(user.getFunction());
txt_number.setText(user.getNumber());
txt_email.setText(user.getEmail());
txt_group.setText(user.getGroup());
txt_fax.setText(user.getFax());
txt_office.setText(user.getOffice());
txt_city_ud.setText(user.getCity());
txt_country_ud.setText(user.getCountry());
} catch (@SuppressWarnings("unused") Exception e) {
MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
mb.setText("Error");
mb.setMessage("Please verify firstname and lastname");
mb.open();
}
}
});
btn_searchInfo.setBounds(10, 87, 114, 25);
btn_searchInfo.setText("Search My Infos");
Label lbl_function = new Label(grpUserDetails, SWT.NONE);
lbl_function.setBounds(224, 26, 55, 15);
lbl_function.setText("Function");
Label lbl_number = new Label(grpUserDetails, SWT.NONE);
lbl_number.setBounds(224, 56, 55, 15);
lbl_number.setText("Phone");
Label lbl_email = new Label(grpUserDetails, SWT.NONE);
lbl_email.setBounds(224, 92, 55, 15);
lbl_email.setText("E-mail");
Label lbl_group = new Label(grpUserDetails, SWT.NONE);
lbl_group.setBounds(224, 124, 55, 15);
lbl_group.setText("Group");
txt_function = new Text(grpUserDetails, SWT.BORDER);
txt_function.setBounds(285, 20, 219, 21);
txt_number = new Text(grpUserDetails, SWT.BORDER);
txt_number.setBounds(285, 53, 219, 21);
txt_email = new Text(grpUserDetails, SWT.BORDER);
txt_email.setBounds(285, 87, 219, 21);
txt_group = new Text(grpUserDetails, SWT.BORDER);
txt_group.setBounds(285, 121, 219, 21);
Label lbl_fax = new Label(grpUserDetails, SWT.NONE);
lbl_fax.setText("Fax");
lbl_fax.setBounds(535, 26, 55, 15);
Label lbl_office = new Label(grpUserDetails, SWT.NONE);
lbl_office.setText("Office");
lbl_office.setBounds(535, 59, 55, 15);
Label lbl_city = new Label(grpUserDetails, SWT.NONE);
lbl_city.setText("City");
lbl_city.setBounds(535, 92, 55, 15);
Label lbl_country = new Label(grpUserDetails, SWT.NONE);
lbl_country.setText("Country");
lbl_country.setBounds(535, 124, 55, 15);
txt_fax = new Text(grpUserDetails, SWT.BORDER);
txt_fax.setBounds(596, 23, 219, 21);
txt_office = new Text(grpUserDetails, SWT.BORDER);
txt_office.setBounds(596, 56, 219, 21);
txt_city_ud = new Text(grpUserDetails, SWT.BORDER);
txt_city_ud.setBounds(596, 89, 219, 21);
txt_country_ud = new Text(grpUserDetails, SWT.BORDER);
txt_country_ud.setBounds(596, 121, 219, 21);
Group grp_conferencesInfos = new Group(shell, SWT.NONE);
GridData gd_conferencesInfos = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
gd_conferencesInfos.heightHint = 237;
gd_conferencesInfos.widthHint = 854;
grp_conferencesInfos.setLayoutData(gd_conferencesInfos);
grp_conferencesInfos.setText("Conferences");
Table table = new Table(grp_conferencesInfos, SWT.V_SCROLL);
table.setBounds(165, 16, 502, 134);
table.setHeaderVisible(true);
fillConferenceTable(table);
Button btn_addNewConf = new Button(grp_conferencesInfos, SWT.NONE);
btn_addNewConf.setBounds(165, 156, 149, 25);
btn_addNewConf.setText("Create conference");
Label lblTitle = new Label(grp_conferencesInfos, SWT.NONE);
lblTitle.setAlignment(SWT.RIGHT);
lblTitle.setBounds(25, 16, 50, 15);
lblTitle.setText("Title");
Text txt_title = new Text(grp_conferencesInfos, SWT.BORDER);
txt_title.setBounds(81, 15, 78, 21);
Label lblUrl = new Label(grp_conferencesInfos, SWT.NONE);
lblUrl.setAlignment(SWT.RIGHT);
lblUrl.setText("URL");
lblUrl.setBounds(25, 45, 50, 15);
Text txt_url = new Text(grp_conferencesInfos, SWT.BORDER);
txt_url.setBounds(81, 42, 78, 21);
Label lblStartDate = new Label(grp_conferencesInfos, SWT.NONE);
lblStartDate.setAlignment(SWT.RIGHT);
lblStartDate.setText("Start Date");
lblStartDate.setBounds(10, 72, 65, 15);
Text txt_startDate = new Text(grp_conferencesInfos, SWT.BORDER);
txt_startDate.setBounds(81, 69, 78, 21);
Label lblEndDate = new Label(grp_conferencesInfos, SWT.NONE);
lblEndDate.setAlignment(SWT.RIGHT);
lblEndDate.setText("End Date");
lblEndDate.setBounds(10, 99, 65, 15);
Text txt_endDate = new Text(grp_conferencesInfos, SWT.BORDER);
txt_endDate.setBounds(81, 96, 78, 21);
Label lblFee = new Label(grp_conferencesInfos, SWT.NONE);
lblFee.setText("Fee");
lblFee.setBounds(42, 126, 33, 15);
Text txt_fee = new Text(grp_conferencesInfos, SWT.BORDER);
txt_fee.setBounds(81, 123, 78, 21);
// add news fields
/*
* Label lblCity= new Label(grp_conferencesInfos, SWT.NONE);
* lblCity.setAlignment(SWT.RIGHT); lblCity.setBounds(25, 38, 50, 15);
* lblCity.setText("City"); Text txt_city = new
* Text(grp_conferencesInfos, SWT.BORDER); txt_city.setBounds(81, 35,
* 78, 21);
*/
Label lblCity = new Label(grp_conferencesInfos, SWT.NONE);
lblCity.setAlignment(SWT.RIGHT);
lblCity.setBounds(25, 153, 50, 15);
lblCity.setText("City");
Text txt_city = new Text(grp_conferencesInfos, SWT.BORDER);
txt_city.setBounds(81, 150, 78, 21);
Label lbladdress = new Label(grp_conferencesInfos, SWT.NONE);
lbladdress.setAlignment(SWT.RIGHT);
lbladdress.setBounds(25, 180, 50, 15);
lbladdress.setText("Address");
Text txt_address = new Text(grp_conferencesInfos, SWT.BORDER);
txt_address.setBounds(81, 177, 78, 21);
// Create new Conference object, assign it values from
// selection, then pass it function to export to desktop
// public Conference(int id, String title, String url, LocalDate
// start_date, LocalDate end_date, double entry_fee)
Button btnExportEvent = new Button(grp_conferencesInfos, SWT.NONE);
btnExportEvent.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/M/yyyy");
TableItem[] ti = table.getSelection();
if (ti.length == 0) {
// Put somewhere that an event should be selected
} else {
Conference conf = new Conference(ti[0].getText(0), ti[0].getText(1), LocalDate.parse(ti[0].getText(2), formatter), LocalDate.parse(ti[0].getText(3), formatter), Double.parseDouble(ti[0].getText(4)), ti[0].getText(5), ti[0].getText(6));
try {
FileDialog dialog = new FileDialog(shell, SWT.SAVE);
dialog.setFilterNames(new String[] { "Calendar Files", "All Files (*.*)" });
// Windows
dialog.setFilterExtensions(new String[] { "*.ics", "*.*" });
switch(Util.getOS()) {
case WINDOWS:
dialog.setFilterPath("c:\\");
break;
case LINUX:
dialog.setFilterPath("/");
break;
case MAC:
dialog.setFilterPath("/");
break;
case SOLARIS:
dialog.setFilterPath("/");
break;
default:
dialog.setFilterPath("/");
}
dialog.setFileName("conference.ics");
conf.generateCalendarFile(dialog.open());
} catch (IOException | ValidationException | ParserException e2) {
e2.printStackTrace();
}
}
}
});
btnExportEvent.setBounds(320, 154, 104, 28);
btnExportEvent.setText("Export Event");
/*
* Behavior of a click on the add new conference button
*/
btn_addNewConf.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
System.out.println("Appui sur le bouton");
if (!txt_title.getText().isEmpty() && !txt_url.getText().isEmpty() && !txt_startDate.getText().isEmpty() && !txt_startDate.getText().isEmpty() && !txt_endDate.getText().isEmpty() && !txt_fee.getText().isEmpty()) {
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate startDate = LocalDate.parse(txt_startDate.getText(), formatter);
LocalDate endDate = LocalDate.parse(txt_endDate.getText(), formatter);
Conference conf = new Conference(txt_title.getText(), txt_url.getText(), startDate, endDate, Double.parseDouble(txt_fee.getText()), txt_city.getText(), txt_address.getText());
ConferenceDatabase.insertInDatabase(conf);
/*
* Reload the conference table
*/
table.removeAll();
fillConferenceTable(table);
} catch (DateTimeParseException e1) {
MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
mb.setText("Date format error");
mb.setMessage("Please fill the dates in the following format : dd/MM/YYYY");
mb.open();
} catch (SQLException e2) {
throw new IllegalStateException(e2);
}
} else {
MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
mb.setText("Information missing");
mb.setMessage("Please fill in the information regarding the conference");
mb.open();
}
}
});
/*
* This group will help the user to see his itinerary into the browser
*/
Group grp_map = new Group(shell, SWT.NONE);
grp_map.setText("Visualize your travel");
GridData gd_map = new GridData(SWT.LEFT, SWT.CENTER, false, true, 1, 1);
gd_map.heightHint = 85;
gd_map.widthHint = 860;
grp_map.setLayoutData(gd_map);
Text departure = new Text(grp_map, SWT.BORDER);
departure.setLocation(101, 22);
departure.setSize(196, 21);
Text arrival = new Text(grp_map, SWT.BORDER);
arrival.setLocation(101, 51);
arrival.setSize(196, 21);
Button btnItinerary = new Button(grp_map, SWT.NONE);
btnItinerary.setText("Validate");
btnItinerary.setBounds(303, 49, 68, 25);
Label lblDeparture = new Label(grp_map, SWT.NONE);
lblDeparture.setAlignment(SWT.RIGHT);
lblDeparture.setBounds(10, 25, 73, 15);
lblDeparture.setText("Departure");
Label lblArrival = new Label(grp_map, SWT.NONE);
lblArrival.setAlignment(SWT.RIGHT);
lblArrival.setBounds(10, 54, 73, 15);
lblArrival.setText("Arrival");
/*
* Behavior of the btnItinerary : Takes the addresses entered in
* departure and arrival Texts and call the ItineraryMap class to open
* the itinerary into the browser
*/
btnItinerary.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
System.out.println("Appui sur le bouton");
if (!departure.getText().isEmpty() && !arrival.getText().isEmpty()) {
try {
AddressInfos dep = new AddressInfos(departure.getText());
AddressInfos arr = new AddressInfos(arrival.getText());
// ItineraryMap itinerary = new
// ItineraryMap(dep.getLongitude(),
// dep.getLatitude(),arr.getLongitude(),
// arr.getLatitude());
GoogleItineraryMap itinerary = new GoogleItineraryMap(departure.getText(), arrival.getText());
String url = itinerary.setMapUrl();
System.out.println(url);
itinerary.openMapUrl(url);
} catch (IllegalArgumentException e) {
LOGGER.error("Error : ", e);
}
} else {
MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
mb.setText("Infromation missing");
mb.setMessage("Please fill in the departure and arrival fields");
mb.open();
}
}
});
arrival.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
System.out.println("nouvelle valeur = " + ((Text) e.widget).getText());
}
});
departure.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
System.out.println("nouvelle valeur = " + ((Text) e.widget).getText());
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
use of net.fortuna.ical4j.model.ValidationException in project zm-mailbox by Zimbra.
the class TimeZoneDefinition method getTimeZone.
/**
*
* @return the appropriate iCal4j TimeZone for this TimeZoneDefinition
*/
public TimeZone getTimeZone() {
if (theZone != null) {
return theZone;
}
if (effectiveRule == null) {
theZone = new TimeZone(0, TimeZones.UTC_ID);
return theZone;
}
if (!effectiveRule.hasDaylightSaving()) {
theZone = new TimeZone(effectiveRule.getStandardUtcOffsetMillis(), getTimezoneName());
return theZone;
}
UtcOffset stdOffset = effectiveRule.getStandardUtcOffset();
UtcOffset dlOffset = effectiveRule.getDaylightUtcOffset();
PropertyList vtzProps = new PropertyList();
TzId myTzid = new TzId(getTimezoneName());
vtzProps.add(myTzid);
VTimeZone vtz = new VTimeZone(vtzProps);
Standard stdComp = new Standard();
stdComp.getProperties().add(effectiveRule.getStandardDtStart());
stdComp.getProperties().add(effectiveRule.icalStandardRRule());
TzOffsetFrom offsetFrom = new TzOffsetFrom(dlOffset);
TzOffsetTo offsetTo = new TzOffsetTo(stdOffset);
stdComp.getProperties().add(offsetFrom);
stdComp.getProperties().add(offsetTo);
Daylight dayComp = new Daylight();
dayComp.getProperties().add(effectiveRule.getDaylightDtStart());
dayComp.getProperties().add(effectiveRule.icalDaylightRRule());
offsetFrom = new TzOffsetFrom(stdOffset);
offsetTo = new TzOffsetTo(dlOffset);
dayComp.getProperties().add(offsetFrom);
dayComp.getProperties().add(offsetTo);
vtz.getObservances().add(stdComp);
vtz.getObservances().add(dayComp);
try {
vtz.validate(true);
theZone = new TimeZone(vtz);
} catch (ValidationException e) {
if (sLog.isDebugEnabled()) {
sLog.debug("Problem with property %s - will default to UTC" + this.mpi.toString(), e);
}
theZone = new TimeZone(0, TimeZones.UTC_ID);
}
theZone = new TimeZone(vtz);
return theZone;
}
Aggregations