Package nsf.playground.beans

Source Code of nsf.playground.beans.GadgetSnippetBean

package nsf.playground.beans;

import java.net.URLEncoder;

import nsf.playground.environments.PlaygroundEnvironment;

import com.ibm.commons.util.StringUtil;
import com.ibm.sbt.opensocial.domino.container.ContainerExtPointException;
import com.ibm.sbt.playground.assets.AssetNode;
import com.ibm.sbt.playground.assets.CategoryNode;
import com.ibm.sbt.playground.assets.opensocial.GadgetSnippetAssetNode;
import com.ibm.sbt.services.endpoints.Endpoint;
import com.ibm.sbt.services.endpoints.EndpointFactory;

/**
* Classes that encapsulates the business logic for an OpenSocial gadget snippet.
*
* @author priand
*/
public abstract class GadgetSnippetBean extends AssetBean {

  public static final String FORM = "GadgetSnippet";
  //Loads the default common container feature plug embedded experiences, open views, actions, and selection.
  //To load another feature just put a colon then the feature name.  For example if I want to load feature foo I would put
  // /.ibmxspres/domino/sbtos/gadgets/js/container:embedded-experiences:open-views:actions:selection:foo.js
  public static final String CONTAINER_JS = "/.ibmxspres/domino/sbtos/gadgets/js/container:embedded-experiences:open-views:actions:selection.js?c=1&debug=1&container=";
 
  protected String getAssetForm() {
    return FORM;
  }
 
  protected AssetNode createAssetNode(String notesUnid, CategoryNode parent, String name, String category, String assetId) {
    return new GadgetSnippetAssetNode(parent,name,category,notesUnid,assetId);
  }
 
  // For gadgets, the runtime platform is *not* enough, but it also needs to use one of the OAuth
  // endpoints. So we have to check that the Endpoint is actually an OAuth endpoint
  @Override
  protected boolean runtimeExists(PlaygroundEnvironment env, String name) {
    Endpoint ep = EndpointFactory.getEndpointUnchecked(name);
    if(ep!=null) {
      try {
        // Check if the endpoint is valid and return true if so.
        ep.checkValid();
        return true;
      } catch(Exception ex) {}
      return false;
    }
    return super.runtimeExists(env, name);
  }
//  protected boolean runtimeExists(PlaygroundEnvironment env, String name) {
//    if(name.endsWith("OA")) {
//      return isEndpoint(env, name, name.substring(0, name.length()-2));
//    } else if(name.endsWith("OA2")) {
//      return isEndpoint(env, name, name.substring(0, name.length()-3));
//    } else {
//      return super.runtimeExists(env, name);
//    }
//  }
//  protected boolean isEndpoint(PlaygroundEnvironment env, String epName, String name) {
//    if(super.runtimeExists(env, name)) {
//      String p = env.getPropertyValueByName("sbt.endpoint."+name);
//      return StringUtil.equals(p, epName);
//    }
//    return false;
//  }

  /**
   * Gets the URL to load the container JavaScript for the current container/environment.
   * @return The URL to load the container JavaScript for the current container/environment.
   * @throws Exception Thrown if there is an error getting the container URL.
   */
  public String getContainerUrl() throws Exception {
    PlaygroundEnvironment e = PlaygroundEnvironment.getCurrentEnvironment();
    //Even though getId will already be encoded, we encode it again because when Shindig decodes it we want to
    //make sure it matches the id of the container (which is URL encoded when registered with Shindig)
    String url = CONTAINER_JS + URLEncoder.encode(e.getId(), "UTF-8");
    return url;
  }
 
  /**
   * Gets the current container ID.
   * @return The current container ID.
   * @throws ContainerExtPointException Thrown when there is an error getting the container ID.
   */
  public String getContainerId() throws ContainerExtPointException {
    String containerId = PlaygroundEnvironment.getCurrentEnvironment().getId();
    return containerId;
  }
}
TOP

Related Classes of nsf.playground.beans.GadgetSnippetBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.