Tech or Treat! Write an article about your scariest tech disaster to win gadgets!Learn more

x
?
Solved

JTree aggregation

Posted on 2003-12-02
10
Medium Priority
?
328 Views
Last Modified: 2008-02-01
I have a dynamic JTree that has numerous root nodes that appear as duplicates (via name), yet the children may be different.  I'm interested in allowing the user to aggregate the tree so the root nodes only appear once, yet all the tree nodes appear under them -- without having to make additional calls to the backend to get the data again.

So for instance, if the tree looks like this
- User
    + Josh
    + Frank
    + Susan
- Admin
    + Tom
    + Dick
    + Harry
- User
    + Johnny
    + Rick
    + Dave
- Admin
   + Tommy
   
I'd like it to appear as follows:
- User
   - User
       + Josh
       + Frank
       + Susan
   - User
       + Johnny
       + Rick
       + Dave
- Admin
    - Admin
       + Tom
       + Dick
       + Harry
    - Admin
       + Tommy
0
Comment
Question by:sapientconceptions
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
10 Comments
 
LVL 92

Expert Comment

by:objects
ID: 9861008
Either add the option in your table model to do the aggregate, or write a new table model that wraps your current model and performs the aggregation.
The second approach should be cleaner.
0
 

Author Comment

by:sapientconceptions
ID: 9861221
can you provide an example?
0
 
LVL 92

Accepted Solution

by:
objects earned 500 total points
ID: 9861299
Not specifically, the skeleton would be something like:

public AggregateTableModel extends AbstracTableModel
   implements TableModelListener
{
   private TableModel Wrapped;

  public AggregateTableModel(TableModel model)
  {
     Wrapped = model;
     // listen for changes to wrapped model
     Wrapped.addTasbleModelListener(this);
  }

  // you then need to implement TableModel methods
  // to return aggregated table details

  ...

   // and TableModelListener methods
   // to fire appropriate events when wrapped model changes
   
   ...
}
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

Author Comment

by:sapientconceptions
ID: 9870668
Thanks for you help. But this didn't help me at all.  I'm hoping someone can provide me the methods for re-arranging the children from one parent to another.

Thanks.
0
 
LVL 92

Expert Comment

by:objects
ID: 9871112
do u actually need both views?
0
 

Author Comment

by:sapientconceptions
ID: 9876320
yes...
0
 
LVL 92

Expert Comment

by:objects
ID: 9877037
is the data dynamic or static?
0
 

Author Comment

by:sapientconceptions
ID: 9877567
Data is dynamic.  But only two levels are initially populated with the original tree ("User/Admin" and their children).  So I'd like to iterate through the tree check a list to see if the node's value exists (i.e. User) if not, add node to new tree and map (record position in new tree), then add current node & children from original tree as child of newly added node to new tree.

Repeat, however if node exists in list, then find position of node in new tree and add node and kids to that parent node in tree.

hope that makes sense.
0
 
LVL 92

Expert Comment

by:objects
ID: 9877817
you could do that ie maintain two seperate tree models externally, or use the approach I suggested above to have the alternate view wrap your existing model and handle the mapping.
Either way it's fairly involved, but am happy to help when you have problems.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.
Suggested Courses

647 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question