Ejemplo n.º 1
0
  private static void addNewViewMenuItems(
      JPopupMenu menu, final DockingWindow window, ViewFactoryManager viewManager) {
    ViewFactory[] viewFactories = viewManager.getViewFactories();

    if (viewFactories.length == 0) return;

    JMenu viewsPopup = new JMenu("Show View");

    for (int i = 0; i < viewFactories.length; i++) {
      final ViewFactory vf = viewFactories[i];

      viewsPopup
          .add(new JMenuItem(vf.getTitle(), vf.getIcon()))
          .addActionListener(
              new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                  View view = vf.createView();

                  if (view.getRootWindow() == window.getRootWindow()) return;

                  view.restore();

                  if (view.getRootWindow() == window.getRootWindow()) return;

                  if (window instanceof RootWindow) ((RootWindow) window).setWindow(view);
                  else {
                    AbstractTabWindow tabWindow = getTabWindowFor(window);

                    if (tabWindow != null) tabWindow.addTab(view);
                  }
                }
              });
    }

    menu.add(viewsPopup);
  }