if (!url.matches(URLValidator.URL_REGEX)) {
uiApplication.addMessage(new ApplicationMessage("UIDashboard.msg.notUrl", null));
return;
}
Gadget gadget;
UIGadget uiGadget;
// TODO check the way we create the unique ID, is it really unique?
try {
String name = "gadget" + url.hashCode();
gadget = GadgetUtil.toGadget(name, url, false);
service.saveGadget(gadget);
uiGadget = uiForm.createUIComponent(context, UIGadget.class, null, null);
uiGadget.setState(new TransientApplicationState<org.exoplatform.portal.pom.spi.gadget.Gadget>(gadget.getName()));
} catch (Exception e) {
String aggregatorId = uiDashboard.getAggregatorId();
gadget = service.getGadget(aggregatorId);
// TODO make sure it's an rss feed
// TODO make sure that we did not add it already
uiGadget = uiForm.createUIComponent(context, UIGadget.class, null, null);
org.exoplatform.portal.pom.spi.gadget.Gadget contentState = new org.exoplatform.portal.pom.spi.gadget.Gadget();
contentState.addUserPref("{'rssurl':'" + url + "'}");
TransientApplicationState<org.exoplatform.portal.pom.spi.gadget.Gadget> applicationState = new TransientApplicationState<org.exoplatform.portal.pom.spi.gadget.Gadget>(
gadget.getName(), contentState);
uiGadget.setState(applicationState);
}
uiContainer.addUIGadget(uiGadget, 0, 0);
uiContainer.save();
uiForm.reset();