This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 32842 - No indication of why Call Stack isn't displayed
Summary: No indication of why Call Stack isn't displayed
Status: VERIFIED FIXED
Alias: None
Product: debugger
Classification: Unclassified
Component: Code (show other bugs)
Version: 3.x
Hardware: Sun Solaris
: P1 blocker (vote)
Assignee: issues@debugger
URL:
Keywords: UI
Depends on:
Blocks:
 
Reported: 2003-04-12 03:20 UTC by ivan
Modified: 2006-07-28 13:03 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
demostrate how to use glass pane in debugger view (patch BeakpointsView) (2.76 KB, patch)
2003-08-08 15:36 UTC, Jiri Rechtacek
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description ivan 2003-04-12 03:20:43 UTC
Often it happens that you click on a thread but
nothing appears in the CallStack view. This can be
puzzling.
It would be better if the stack view could render
a message
explaining why there is no stack displayed:
- thread is not stopped
- thread has only native frames
- etc.
Comment 1 Jan Jancura 2003-04-15 09:07:08 UTC
I agree.
Jano, can you look at it, please?
It looks like we should have some "information area" in some debugger
views.
Comment 2 jrojcek 2003-06-30 17:02:25 UTC
I think we have a solution for this problem. It was specified for 3.4
debugger. Please look at the images in the document:
http://ui.netbeans.org/docs/hi/debugger3.4/tables/index.html

It is about a general debugger table behavior and I think it is what
were looking for. If a view itself makes sense in the current debugger
engine, but there is nothing to display at that moment in a view, the
message should notify the user why is that.

I hope that would work.
Comment 3 Jan Jancura 2003-07-09 12:48:56 UTC
OK.
Looks like requirement on TreeTableView
=> openide.
Comment 4 _ gordonp 2003-07-17 00:13:58 UTC
At the request of Arseniy I've removed the RAINIER_EA
keyword from this issue. We'll take this one post-EA.
Comment 5 David Simonek 2003-07-17 11:43:47 UTC
Jan & Jano, what are these requirements on TreeTableView? Could you be
more specific and give me example of how you think communication
between TTV and your code should look like?
I expect that you want API method like void setMessageForEmpty (String
msg);
is that enough? Thx.
Comment 6 Jiri Rechtacek 2003-08-01 16:36:22 UTC
Eval: UI spec. for debugger views specify that an user will be
notified when there is nothing to display. But it isn't consistent
with other views in openide, no view provides a message if no node is
displayed. I think the debugger view built on the top of
TreeTableView(TTV) should handle this situation itself rather to
change TTV API. I can subclass TTV, ask tree.getRootPane() and set new
glass pane with any message, it should be solved in debugger code I
suppose. I assign back to debugger.
Comment 7 ivan 2003-08-01 23:39:14 UTC
I made a post on nbdev a few days ago titled 
	Nodes, DOs beans, and property types
(see
http://www.netbeans.org/servlets/ReadMsg?msgId=555956&listName=nbdev)

where I brought up the issue of a TTV cell renderer sometimes
wanting to show not a value but the absence of value, the
inability to get the value and so on. 

You can generalize the same argument to TTV's as a whole
which is what this issue is about.

While all the examples are from the debugging domain I don't
see why that should be prior restraint. The concept of a "value"
not being available seems completely general to me and any 
"view" element should be able to handle this at all levels.
Comment 8 Jiri Rechtacek 2003-08-08 15:36:05 UTC
Created attachment 11256 [details]
demostrate how to use glass pane in debugger view (patch BeakpointsView)
Comment 9 Jiri Rechtacek 2003-08-08 15:40:00 UTC
I attached the patch with demonstrate how to use a writeable glass
pane in a debugger view. More details can provide on demand. Debugger
code can handle asked functionality itself => reassign back to
debugger authors.
Comment 10 Maros Sandor 2003-08-20 17:01:09 UTC
I added two new public methods to the 
TreeTableExplorerViewSupport class, which is a base class 
for all debugger treetable views. These methods are
setNodesUnavailable(String reason) and setNodesAvailable
(). With these, one can control what (if any) message 
should be displayed if there is no node in the tree view. 
I also modified the Breakpoints and Watches views to 
display a customized message. Let me know if this 
functionality is sufficient for the rainier release.
Comment 11 Maros Sandor 2003-08-22 12:39:18 UTC
Ok, I assume it is sufficient for the rainier release.
Comment 12 ivan 2003-08-22 21:22:11 UTC
We found that the current default messages were a bit jarring
(unexpected). My original intent was to put messages when 
there's some unusual situation like some sever error.
So can we make the default message be nothing and add them
judiciously?

Also no-one has rebutted why this feature isn't of general
applicability to the rest of the ide. Any TV can have no
nodes available.

Comment 13 ivan 2003-08-24 23:36:51 UTC
The glass pane solution doesn't work very well.
If you adjust the heights of the debugger TV's so that they
are very short, the middle of the glass pane ends up being
over the column names window and it looks really ugly.

You probably want to make the glass pane overlap only the white
cell area; start from just below the grey column name subwin.
Comment 14 Maros Sandor 2003-08-25 13:24:55 UTC
I removed the default "information unavailable" text and 
adjusted clip bounds so that the text does not paint above 
other controls (header, scrollbar)
Comment 15 ivan 2003-12-18 00:04:42 UTC
I"ve finally gotten around to using this and it almost
works for me. There's one glitch though. setNodes[Un]Available(
just sets a field and depends on paint() to update the view.
I don't always end up with a paint though!
How do you force the paint?

Comment 16 Maros Sandor 2003-12-18 10:15:39 UTC
Any debugger view is a Component, so calling repaint() should refresh 
the display.
Comment 17 Max Sauer 2005-07-13 10:43:25 UTC
CallStack view and Threads view works properly in current build. Closing.
Comment 18 ivan 2005-07-13 19:28:31 UTC
Ummm, except that because of modelview debugger clients don't have access
to the TTV directly anymore, so the modelview package needs to
delegate setNodesUnavailable().
Comment 19 Martin Entlicher 2005-07-21 15:01:24 UTC
There is actually no setNodesUnavailable method in debugger modules any more.
You're free to provide any node you like before the computation is done and
refresh afterwards. This is actually necessary to do in JPDA debugger models to
solve issues #59463 and #59465.

Resolving as fixed again, since it seems to be fixed in the past. Now the
described solution is available...
Comment 20 ivan 2005-07-21 20:01:01 UTC
> There is actually no setNodesUnavailable method

That's my _point_.
I don't want to provide a dummy node, I want to declare that there are no
nodes and have the debugger view put out text in a plain canvas as
opposed to a dummy node in a table.

IZ's #59463 and #59465 seem to complain about his feature having vanished.
and the "fixed" comments in those IZ's don't say how it got fixed.

I'm reopening because I"m not happy with the described solution, and 
I doubt that the filers of #59463 and #59465 would be either.


Comment 21 Martin Entlicher 2005-07-25 10:31:47 UTC
Actually no. Issues #59463 and #59465 were submitted for build #200505311800.
The informative nodes were broken a while before #200505311800 and since I've
seen it (in 4.1) it displayed just an informative *node*.

This is a P1 *defect* and was fixed in the past. I have no idea what has
happened with the fix afterwards, but apparently things are done differently
now. The change had to be done for some reason, which needs to be found before
we can do any conclusion. If you do not like the current behavior, submit an
enhancement. But now, there *is* an indication of why Call Stack isn't
displayed, therefore in my point of view there can not be an open P1 defect for
that. So closing again ;-)

I'll search the history to see what was done in the past... If there is a
requirement for a text in the canvas (BTW: I agree that it will look better), we
can submit an enhancement for that.
Comment 22 Martin Entlicher 2005-07-25 14:45:59 UTC
It looks like the setNodesUnavailable method was removed during the debugger
redesign. So if you need that behavior, please submit an enhancement and we'll
have to prepare and API change...
Comment 23 Martin Entlicher 2005-07-25 15:42:59 UTC
Perhaps issue #36586 can be used to track the implementation of the description...
Comment 24 Jiri Kovalsky 2006-07-28 13:03:56 UTC
Nothing is displayed when call stack is not available. Verified in development
build #200607271800 of NetBeans 6.0.