コード例 #1
0
  /** @generated */
  public Object[] getChildren(Object parentElement) {
    if (parentElement instanceof IFile) {
      IFile file = (IFile) parentElement;
      URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
      Resource resource = myEditingDomain.getResourceSet().getResource(fileURI, true);
      ArrayList<stateAnalysis.diagram.navigator.StateAnalysisNavigatorItem> result =
          new ArrayList<stateAnalysis.diagram.navigator.StateAnalysisNavigatorItem>();
      ArrayList<View> topViews = new ArrayList<View>(resource.getContents().size());
      for (EObject o : resource.getContents()) {
        if (o instanceof View) {
          topViews.add((View) o);
        }
      }
      result.addAll(
          createNavigatorItems(
              selectViewsByType(topViews, stateAnalysis.diagram.edit.parts.SystemEditPart.MODEL_ID),
              file,
              false));
      return result.toArray();
    }

    if (parentElement instanceof stateAnalysis.diagram.navigator.StateAnalysisNavigatorGroup) {
      stateAnalysis.diagram.navigator.StateAnalysisNavigatorGroup group =
          (stateAnalysis.diagram.navigator.StateAnalysisNavigatorGroup) parentElement;
      return group.getChildren();
    }

    if (parentElement instanceof stateAnalysis.diagram.navigator.StateAnalysisNavigatorItem) {
      stateAnalysis.diagram.navigator.StateAnalysisNavigatorItem navigatorItem =
          (stateAnalysis.diagram.navigator.StateAnalysisNavigatorItem) parentElement;
      if (navigatorItem.isLeaf() || !isOwnView(navigatorItem.getView())) {
        return EMPTY_ARRAY;
      }
      return getViewChildren(navigatorItem.getView(), parentElement);
    }

    /*
     * Due to plugin.xml restrictions this code will be called only for views representing
     * shortcuts to this diagram elements created on other diagrams.
     */
    if (parentElement instanceof IAdaptable) {
      View view = (View) ((IAdaptable) parentElement).getAdapter(View.class);
      if (view != null) {
        return getViewChildren(view, parentElement);
      }
    }

    return EMPTY_ARRAY;
  }