// fetch the specified schedule.
if (passwordStr != null) {
passwordStr = passwordStr.trim();
if (passwordStr.length() == 0) passwordStr = null;
}
CachedObject importedSchedule =
new CachedURLObject(dash.getCache(),
EVTaskListCached.CACHED_OBJECT_TYPE,
u,
passwordStr == null ? null : "EV",
passwordStr);
// check to see if there was an error in fetching the schedule.
errorMessage = importedSchedule.getErrorMessage();
String remoteName = null;
if (errorMessage == null) {
// if we were able to successfully fetch the schedule, try
// to interpret its contents as an XML schedule.
remoteName = EVTaskListCached.getNameFromXML
(importedSchedule.getString("UTF-8"));
// if we weren't able to interpret the fetched schedule,
// record an error message.
if (remoteName == null)
errorMessage =
resources.getString("Import_Schedule.Invalid_Schedule");
}
// if there was any error, ask the user if they want to continue.
if (errorMessage != null) {
errorMessage = CachedURLObject.translateMessage
(resources, "Import_Schedule.", errorMessage);
Object message = new Object[] {
resources.getString("Import_Schedule.Error.Header"),
" " + errorMessage,
resources.getString("Import_Schedule.Error.Footer") };
if (JOptionPane.showConfirmDialog
(frame, message,
resources.getString("Import_Schedule.Error.Title"),
JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE)
!= JOptionPane.YES_OPTION)
return null;
}
// get a local name to use for this schedule.
String localName = remoteName;
String owner = (String) importedSchedule.getLocalAttr
(CachedURLObject.OWNER_ATTR);
if (owner != null)
localName = resources.format
("Import_Schedule.Default_Name_FMT", localName, owner);
do {
localName = (String) JOptionPane.showInputDialog
(frame,
resources.getStrings("Import_Schedule.Name_Dialog.Prompt"),
resources.getString("Import_Schedule.Name_Dialog.Title"),
JOptionPane.PLAIN_MESSAGE, null, null, localName);
if (localName != null)
localName = localName.replace('/', ' ').trim();
} while (localName == null || localName.length() == 0);
importedSchedule.setLocalAttr(EVTaskListCached.LOCAL_NAME_ATTR,
localName);
// return the name of the cached schedule object
return EVTaskListCached.buildTaskListName(importedSchedule.getID(),
localName);
}