Author: scottbw
Date: Mon Mar 28 14:32:53 2011
New Revision: 1086255
URL: http://svn.apache.org/viewvc?rev=1086255&view=rev
Log:
Implemented updating of widgets including any changes in config.xml -
previously Wookie just overwrote files in the package but did not update any of
the widget metadata, resulting in some odd "caching" type behaviour as changes
to things like height and width wouldn't "take".
Modified:
incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
Modified: incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java?rev=1086255&r1=1086254&r2=1086255&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java Mon
Mar 28 14:32:53 2011
@@ -501,8 +501,8 @@ public class WidgetAdminServlet extends
}
else{
// UPDATE
- // TODO - call the manager to update
required resources
- // widget updated
+ // Update the widget metadata and
configuration details
+ WidgetFactory.update(widgetModel,
persistenceManager.findWidgetByGuid(widgetModel.getIdentifier()), false);
request.setAttribute("message_value",
"'"+ widgetModel.getLocalName("en") +"' - " +
localizedMessages.getString("WidgetAdminServlet.20")); //$NON-NLS-1$
//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java?rev=1086255&r1=1086254&r2=1086255&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java Mon
Mar 28 14:32:53 2011
@@ -301,5 +301,44 @@ public class WidgetFactory {
persistenceManager.delete(widget);
return true;
}
+
+ /**
+ * Update a Widget with a new model
+ * @param model the updated widget model
+ * @param widget the existing widget
+ * @param grantAccessRequests set to true to grant any access requests
defined by the model
+ */
+ public static void update( W3CWidget model, IWidget widget, boolean
grantAccessRequests ){
+ IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
+ if (model.getAuthor() != null){
+
widget.setWidgetAuthor(model.getAuthor().getAuthorName());
+
widget.setWidgetAuthorEmail(model.getAuthor().getEmail());
+ widget.setWidgetAuthorHref(model.getAuthor().getHref());
+ }
+ widget.setGuid(model.getIdentifier());
+ widget.setHeight(model.getHeight());
+ widget.setWidth(model.getWidth());
+ widget.setVersion(model.getVersion());
+
+ // Clear old values
+ widget.setStartFiles(null);
+ widget.setNames(null);
+ widget.setDescriptions(null);
+ widget.setLicenses(null);
+ widget.setFeatures(null);
+ widget.setWidgetIcons(null);
+ widget.setPreferenceDefaults(null);
+
+ // Set with updated values
+ createStartFiles(persistenceManager, model,widget);
+ createNames(persistenceManager, model,widget);
+ createDescriptions(persistenceManager, model,widget);
+ createIcons(persistenceManager, model, widget);
+ createLicenses(persistenceManager, model,widget);
+ createPreferences(persistenceManager, model,widget);
+ createFeatures(persistenceManager, model,widget);
+ persistenceManager.save(widget);
+ createAccessRequests(persistenceManager, model, widget,
grantAccessRequests);
+ }
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java?rev=1086255&r1=1086254&r2=1086255&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
Mon Mar 28 14:32:53 2011
@@ -211,6 +211,7 @@ public class ContextListener implements
FlashMessage.getInstance().message(message);
} else {
String message
= model.getLocalName("en") +"' - " +
localizedMessages.getString("WidgetAdminServlet.20");
+
WidgetFactory.update(model,
persistenceManager.findWidgetByGuid(model.getIdentifier()), true);
_logger.info(message);
FlashMessage.getInstance().message(message);
}