I'm using JDE and OO-Browser.  I use the capabilities of both OO-Browser and
the speedbar for source code browsing since I believe each do things well.  

The main difference between what OO-Browser provides and what is implemented
in the JDE is that in OO-Browser, you can obtain ancestor/descendant
relationships for any/all classes in the currently defined in the
environment.  This functionality is a result of the fact that OO-Browser
requires you define and build an "environment" where all source files can be
discovered and pre-parsed.  The very large and complex class hierarchy is
then persisted to all the displaying of a graphical tree strcuture, similar
to that provided in commercial OO programming IDE's.
Clicking on a class in the graphical tree will allow you to edit/view the
associated source.

On the downside of OO-Browser, it does not handle Java inner-classes well.
All nested classes and their methods are treated as features of the
top-level class, which is really annoying.  In comparison, the JDE speedbar
puts inner classes under the Classes item, so you can easily see what inner
classes exist.  The speedbar doesn't handle the methods of inner classes too
great since you can't actually associate a method to a given class, but I
don't find the behavior nearly as obtrusive as OO-Browser's.

I'm curious if anyone else is interested in having the capability of viewing
a graphical class structure for a given class.  I've been trying to evaluate
how much effort it would take to implement this functionality (not that I'm
trying to make more work for anyone).  With the integration of the
beanshell, we would have the capability to add the graphical class tree.
Provided that the user includes the top-level source directories in the
jde-global-classpath variable, there would not be a need to require the user
to define a new set of source directories outside of setting up the current
JDE project.  The only issue I can see is that there would need to be a
mechanism to parse the entire project and to persist the pre-parsed results.

Stephen L. Faustino
Senior Software Engineer
SecureLogix Corporation
Direct/Vmail (210)402-9669x949
mailto:[EMAIL PROTECTED]
 
This email is intended for the named recipient(s) only and may contain
information that is privileged and/or confidential. Nothing in this
email is intended to constitute a waiver of any privilege or the
confidentiality of this message. If you have received this email in
error, please notify me immediately by reply and delete this message. 




-----Original Message-----
From: Richard Y. Kim [mailto:[EMAIL PROTECTED]]
Sent: Thursday, December 16, 1999 2:45 PM
To: Paul Kinnucan
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: JDE with OO-Browser


>>>>> "PK" == Paul Kinnucan <[EMAIL PROTECTED]> writes:

    PK> At 02:23 PM 12/16/99 +0000, [EMAIL PROTECTED] wrote:
    >> 
    >> Has anyone been able to integrate JDE with
    >> OO-Browser? It seems to me to be a more powerful way
    >> of navigating source code than Speedbar.

    PK> I just installed oo-browser on my system (NT/Emacs
    PK> 20.5) and started up Emacs. oo-browser did something
    PK> very wierd to the Emacs menubar. The Buffers menu
    PK> for example no longer shows all the open buffers;
    PK> the imenu menu no works; the recent files menu
    PK> (recentf.el) has disappeared, and when you click on
    PK> a top-level menu in the menu bar, the entries shift
    PK> right slightly and the imenu menu becomes bold,
    PK> though still inoperative. I verified this by
    PK> uninstalling and re-installing. Uninstalling
    PK> everything works as normal. Reinstalling the same
    PK> menubar problems reappear. I don't know what
    PK> oo-browser is doing but it makes me wonder what
    PK> other problems remain to be discovered if it can't
    PK> even start up correctly.

I've been using oo-browser for quite some time on c++ with
no problem.  I've recently started using it for java.  It's
been working great.  Even the graphical tree browser (the X
version, not the win32 version) works interactively with
emacs.

I can guess one possible source of the problem.  oo-browser
comes with some of the hyperbole files in its hypb
subdirectory.  I would suspect these files, because
hyperbole 4.17 had a bug that crashed GNU Emacs 20.4
consistently.  I have not seen the crash problem with
hyperbole 4.18.  I would use hyperbole 4.18 and get rid of
oo-browser-4.07/hypb files.  Just a guess.

Here is my startup code related to oo-browser:

  ;;I couldn't get win32 version of the tree browser to work
  ;;interactively with emacs.
  ;;So I compiled the X version of it using cygwin and it works fine.
  ;;Of course you need an x server to use it.
  ;;I use the demo copy of Starnet's x server.
  (setq *br-tree-prog-name* "xoobr.exe")

  ;; site-elisp-top is where all my own elisp stuff is located.
  (setq br-names-file (expand-file-name "_oo-browser.el" site-elisp-top))
  (setq br-invert-ancestors t)

  ;;The problem with default regexp is that it matches *.inc files!
  ;;Visual C++ 6.0 comes with several *.inc files that are not C++!
  ;; -ryk 9/27/99 1:08pm.
  ;;(setq c++-src-file-regexp
"[^.]\\.\\([chCH][xX][xX]\\|[chCH][chpCHP]?[pP]?\\|[iI][cC][cC]\\|I\\|[iI][n
N][cC]\\)$")

  (setq c++-src-file-regexp "[^.]\\.\\([chCH]\\|[cC][pP][pP]\\)$")

  (setq br-directory (expand-file-name "oo-browser-4.07/" site-elisp-top))

  ;;site-prepend-to-load-path is my own function which does what says.
  (site-prepend-to-load-path "oo-browser-4.07")

  (load "br-start")

Here is my hyperbole related startup code:

  (setq hyperb:dir (expand-file-name "hyperbole-4.18/" site-elisp-top))
  (setq hbmap:dir-user "~/share/.hyperb/")
  (site-prepend-to-load-path hyperb:dir)

  (load (expand-file-name "hversion" hyperb:dir))
  (load (expand-file-name "hyperbole" hyperb:dir))

I had to modify couple of lines in br-tree.el to make it
work with xoobr.exe program for java programs.  Here is the
diff. I would have sent this to beopen.com, but I'm not one
of their paying customers.  So I don't expect any replys
from them.

  bash.exe-2.03$ diff -c br-tree.el-orig br-tree.el
  *** br-tree.el-orig     Thu Sep 30 18:10:58 1999
  --- br-tree.el  Thu Dec 16 12:20:50 1999
  ***************
  *** 292,298 ****
                  br-cmd-str))
            (progn
              (setq lang-prefix (substring br-cmd-str
  !                                        (+ (match-beginning 1) 2)
                                           (match-end 1))
                    env-name (substring br-cmd-str
                                        (match-beginning 2)
  --- 292,298 ----
                  br-cmd-str))
            (progn
              (setq lang-prefix (substring br-cmd-str
  !                                        (+ (match-beginning 1) 0)
                                           (match-end 1))
                    env-name (substring br-cmd-str
                                        (match-beginning 2)
  ***************
  *** 304,309 ****
  --- 304,314 ----
                                    (match-beginning 4)
                                    (match-end 4))
                    br-cmd-str nil)
  + 
  +           ;;Strip the trailing CR characters.
  +           (if (string-match "\\(.*\\)
+$" env-name)
  +               (setq env-name (substring env-name (match-beginning 1)
(match-end 1))))
  + 
              ;;
              ;; `node' is either a class name or a feature-tag that we
              ;; must convert from string format.

My environment is

  WinNT4 SP3
  GNU Emacs 20.5
  cygwin 1.0 (I purchased their cd-rom)
  oo-browser 4.07 (minus hypb files)
  hyperbole 4.18

Reply via email to