Advanced Features > Nested Managers and Nested Graphers > Nested Managers > Example: Adding a Nested Manager

Here is the code for a simple example:

import ilog.views.*;
import ilog.views.graphic.*;
import javax.swing.*;
import java.awt.*;

public class SubManagerExample
{
  public static void main(String[] args) {
    IlvGraphic obj;
    IlvManager toplevel = new IlvManager();
    IlvManager subManager = new IlvManager();

    obj = new IlRectangle(new IlvRect(10,10,50,50), false, true);
    subManager.addObject(obj, false);
    obj = new IlvRectangle(new IlvRect(100,100,50,50), false, true);
    subManager.addObject(obj, false);

    toplevel.addObject(subManager, false);

    obj = new IlvRectangle(new IlvRect(10,200,50,50), false, true);
    toplevel.addObject(obj, false);

    final IlvManagerView view = new IlvManagerView(toplevel);
    view.setBackground(Color.blue);
    SwingUtilities.invokeLater(
      new Runnable() {
        public void run() {
          JFrame frame = new JFrame("Sub manager Example");
          frame.getContentPane().add(view);
          frame.setSize(200,200);
          frame.setVisible(true);
        }
      });
}

This simple example creates two IlvManager objects, the top-level manager (variable toplevel) that will be displayed in the view and the submanager (variable subManager). The submanager is added in the top level by the line:

toplevel.addObject(subManager, false);

Two rectangles are also added to the submanager. Another rectangle is added at the top level.

The resulting application is shown in Figure 1.2.

images/subgraph2.gif

Figure 1.2 Submanager Example

The white area is the submanager containing two rectangles.

Note
Adding a manager to a manager can be done to an infinite level. The library will just make sure that you do not create cycles in the hierarchy of nested managers.