ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
boolean confShowMyRooms = 1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_MYROOMS_KEY, Integer.class, "0");
boolean confShowRss = 1 == cfgDao.getConfValue(CONFIG_DASHBOARD_SHOW_RSS_KEY, Integer.class, "0");
boolean save = false;
WidgetFactory widgetFactory = dashboardContext.getWidgetFactory();
if (dashboard == null) {
dashboard = new UserDashboard("default", "Default");
dashboard.addWidget(widgetFactory.createWidget(new WelcomeWidgetDescriptor()));
dashboard.addWidget(widgetFactory.createWidget(new StartWidgetDescriptor()));
if (confShowMyRooms) {
dashboard.addWidget(widgetFactory.createWidget(new MyRoomsWidgetDescriptor()));
}
if (confShowRss) {
dashboard.addWidget(widgetFactory.createWidget(new RssWidgetDescriptor()));
}
save = true;
} else {
for (Iterator<Widget> iter = dashboard.getWidgets().iterator(); iter.hasNext();) {
Widget w = iter.next();
// PrivateRoomWidget is stored in the profile of user. Now, Show_MyRooms_key is disable.
if (w.getClass().equals(MyRoomsWidget.class)) {
existMyRoomWidget = true;
if (!confShowMyRooms) {
iter.remove();
}
} else if ((w.getClass().equals(RssWidget.class))) {
// RssWidget is stored in the profile of user. Now, Show_RSS_Key is disable.
existRssWidget = true;
if (!confShowRss) {
iter.remove();
}
} else {
w.init();
}
}
// PrivateRoomWidget was deleted from profile and now it's enabled. It's added again to dashboard.
if (!existMyRoomWidget && confShowMyRooms && !dashboard.isWidgetMyRoomsDeleted()) {
dashboard.addWidget(widgetFactory.createWidget(new MyRoomsWidgetDescriptor()));
save = true;
}
// RssWidget was deleted from profile and now it's enabled. It's added again to dashboard.
if (!existRssWidget && confShowRss && !dashboard.isWidgetRssDeleted()) {
dashboard.addWidget(widgetFactory.createWidget(new RssWidgetDescriptor()));
save = true;
}
}
if (save) {
dashboardContext.getDashboardPersiter().save(dashboard);