public void addSitelet(String containerName, String entityName, Long savedId, boolean addOnTop) {

    // Get the next order int:
    Integer order = 0;
    List<SiteletProperties> items = SiteletProperties.getByContainerId(containerName);
    if (items != null && !items.isEmpty()) {
      if (addOnTop) {
        SiteletProperties first = items.get(0);
        order = first.order - 1;
      } else {
        SiteletProperties last = items.get(items.size() - 1);
        order = last.order + 1;
      }
    }

    // insert the sitelet
    SiteletProperties item = new SiteletProperties();
    item.entityId = savedId;
    item.entityTypeClassName = entityName;
    item.order = order;
    item.containerId = containerName;
    item.insert();
    item.triggerRefreshAsync();
    clearContainerCache(containerName);
  }
 public void saveSiteletOrder(String containerName, List<Long> siteletIds) {
   int order = 0;
   for (Long siteletId : siteletIds) {
     SiteletProperties item = SiteletProperties.get(siteletId);
     item.order = order;
     item.update();
     order++;
   }
   clearContainerCache(containerName);
   SiteletProperties.broadcast(containerName, null);
 }