Пример #1
0
  /**
   * Creates the initial UI Root Node, including the known mandatory elements.
   *
   * @param force if true, a new UiManifestNode is recreated even if it already exists.
   */
  @Override
  protected void initUiRootNode(boolean force) {
    // The manifest UI node is always created, even if there's no corresponding XML node.
    if (mUiManifestNode != null && force == false) {
      return;
    }

    AndroidManifestDescriptors manifestDescriptor = getManifestDescriptors();

    if (manifestDescriptor != null) {
      ElementDescriptor manifestElement = manifestDescriptor.getManifestElement();
      mUiManifestNode = manifestElement.createUiNode();
      mUiManifestNode.setEditor(this);

      // Similarly, always create the /manifest/uses-sdk followed by /manifest/application
      // (order of the elements now matters)
      ElementDescriptor element = manifestDescriptor.getUsesSdkElement();
      boolean present = false;
      for (UiElementNode ui_node : mUiManifestNode.getUiChildren()) {
        if (ui_node.getDescriptor() == element) {
          present = true;
          break;
        }
      }
      if (!present) {
        mUiManifestNode.appendNewUiChild(element);
      }

      element = manifestDescriptor.getApplicationElement();
      present = false;
      for (UiElementNode ui_node : mUiManifestNode.getUiChildren()) {
        if (ui_node.getDescriptor() == element) {
          present = true;
          break;
        }
      }
      if (!present) {
        mUiManifestNode.appendNewUiChild(element);
      }

      onDescriptorsChanged();
    } else {
      // create a dummy descriptor/uinode until we have real descriptors
      ElementDescriptor desc =
          new ElementDescriptor(
              "manifest", //$NON-NLS-1$
              "temporary descriptors due to missing decriptors", //$NON-NLS-1$
              null /*tooltip*/,
              null /*sdk_url*/,
              null /*attributes*/,
              null /*children*/,
              false /*mandatory*/);
      mUiManifestNode = desc.createUiNode();
      mUiManifestNode.setEditor(this);
    }
  }