Package com.google.code.apis.rest.client.Tree

Source Code of com.google.code.apis.rest.client.Tree.ResourceTypeItem

/**
*
*/
package com.google.code.apis.rest.client.Tree;

import java.util.Iterator;
import java.util.Vector;

import com.google.code.apis.rest.client.GUI.GuiFactory;
import com.google.code.apis.rest.client.GUI.SettingsDialog;
import com.google.code.apis.rest.client.Util.SyntaxHighlighter;
import com.google.code.apis.rest.client.Wadl.ApplicationNode;
import com.google.code.apis.rest.client.Wadl.ResourceTypeNode;
import com.google.code.apis.rest.client.Wadl.WadlXml;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.Widget;

/**
* @author tsteiner
*
*/
public class ResourceTypeItem extends Composite {

  /**
   * @param resourceType
   * @param applicationTreeItem
   */
  public ResourceTypeItem(final ResourceTypeNode resourceType, final TreeItem applicationTreeItem) {       
    HorizontalPanel resourceTypePanel = new HorizontalPanel();
    resourceTypePanel.add(new HTML(SyntaxHighlighter.highlight("<" + WadlXml.resourceTypeNode + " " + WadlXml.resource_type_id + "=\"")));
       
    final TextBox input = new TextBox();
    input.setText(resourceType.getId());
    input.addChangeListener(new ChangeListener() {
      public void onChange(Widget sender) {
        resourceType.updateId(resourceType.getId(), input.getText());
      }   
    });
    resourceTypePanel.add(input);
   
    resourceTypePanel.add(new HTML(SyntaxHighlighter.highlight("\" >")));
       
    Hyperlink removeResourceTypeLink = new Hyperlink(GuiFactory.strings.remove(), true, "");
    removeResourceTypeLink.addClickListener(new ClickListener() {
      public void onClick(Widget sender) {       
        resourceType.getApplication().removeResourceType(resourceType);        
        listResourceTypes(resourceType.getApplication(), applicationTreeItem);
      }
    });     
    resourceTypePanel.add(removeResourceTypeLink);
       
    initWidget(resourceTypePanel);
  }

  /**
   * @param application
   * @param applicationTreeItem
   */
  public static void listResourceTypes(final ApplicationNode application, final TreeItem applicationTreeItem) {
    Vector buttonTreeItems = WadlTreeRoot.removeChildrenXKeepButtons(applicationTreeItem, WadlXml.resourceTypeNode);
   
    Vector allResourceTypes = application.getAllResourceTypes();
    Iterator allResourceTypesIterator = allResourceTypes.iterator();
    while (allResourceTypesIterator.hasNext()) {
      ResourceTypeNode resourceType = (ResourceTypeNode) allResourceTypesIterator.next();
      ResourceTypeItem resourceTypeItem = new ResourceTypeItem(resourceType, applicationTreeItem);
      TreeItem resourceTypeTreeItem = new TreeItem(resourceTypeItem);
      applicationTreeItem.addItem(resourceTypeTreeItem);
      resourceTypeTreeItem.setUserObject(WadlXml.resourceTypeNode);
      resourceTypeTreeItem.setState(SettingsDialog.treeItemsAlwaysOpen);
     
      String requestString = "";
      if (resourceType.getApplication() != null) {
        requestString = resourceType.getApplication().getAnalyzer().getRequestString();
      }
      // methods     
      MethodItem.listMethods(resourceType, resourceTypeTreeItem, requestString);     
     
      // params     
      ParamItem.listParams(
          resourceType,
          resourceTypeTreeItem,
          requestString);
     
      // close resource type item
      GenericClosingItem resourceTypeCloseItem = new GenericClosingItem(WadlXml.resourceTypeNode);
      TreeItem resourceTypeCloseTreeItem = new TreeItem(resourceTypeCloseItem);
      resourceTypeCloseTreeItem.setUserObject(WadlXml.resourceTypeNode);
      applicationTreeItem.addItem(resourceTypeCloseTreeItem);     
    }  
   
    if (!WadlTreeRoot.containsButton(buttonTreeItems, ApplicationItem.button + WadlXml.resourceTypeNode)) {
      // add resource type button
      HorizontalPanel addResourceTypePanel = new HorizontalPanel();           
      Button addResourceTypeButton = new Button(GuiFactory.strings.addResourceType());
      addResourceTypeButton.addClickListener(new ClickListener() {
        public void onClick(Widget sender) {         
          application.addResourceType(new ResourceTypeNode(GuiFactory.strings.newResourceType(), application));                              
          listResourceTypes(application, applicationTreeItem);       
        }
      });
      addResourceTypePanel.add(addResourceTypeButton);
      TreeItem addResourceTypeTreeItem = new TreeItem(addResourceTypePanel);
      addResourceTypeTreeItem.setUserObject(ApplicationItem.button + WadlXml.resourceTypeNode);
      applicationTreeItem.addItem(addResourceTypeTreeItem);
    }   
    WadlTreeRoot.addButtons(buttonTreeItems, applicationTreeItem);
  }
}
TOP

Related Classes of com.google.code.apis.rest.client.Tree.ResourceTypeItem

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.