コード例 #1
0
  public void open() {
    if (fModel == null) {
      return;
    }

    try {
      IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
      if (activeWorkbenchWindow == null) {
        return;
      }
      IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
      if (activePage == null) {
        return;
      }

      String symbolName = getName();

      TmaInput root = fModel.getAst().getRoot();
      ITmaNode resolved = searchInRoot(root, symbolName);
      if (resolved == null) {
        return;
      }

      if (resolved.getSource() == fModel.getAst().getSource()) {
        openLocal(activePage, fModel, resolved);
      } else {
        // TODO
        //				activePage.getNavigationHistory().markLocation(activePage.getActiveEditor());
        //				if (open(activePage, fModel, resolved)) {
        //					activePage.getNavigationHistory().markLocation(activePage.getActiveEditor());
        //				}
      }
    } catch (PartInitException e) {
      // ignored
    }
  }