void addView(ViewProviderService vp) {

		String name = vp.getViewName();
		if (map.remove(name) != null) {
			map.put(name, vp);
			setCurrentView(name);
		}
		else {
			// remove us as a listener so that the view change does not
			// go out as a result of just adding a view provider
			tabbedPane.removeChangeListener(this);
			try {
				int index = tabbedPane.indexOfTab(name);
				if (index >= 0) {
					tabbedPane.remove(index);
				}
				map.put(name, vp);
				int insertIndex = tabbedPane.getTabCount();
				final JComponent viewComponent = vp.getViewComponent();
				tabbedPane.insertTab(name, null, viewComponent, null, insertIndex);
				tabbedPane.setTabComponentAt(insertIndex, new DockingTabRenderer(tabbedPane, name,
					name, e -> closeView(getViewProviderForComponent(viewComponent), true)));
			}
			finally {
				tabbedPane.addChangeListener(this);
			}
		}
	}
Add a view component to the tabbed pane and make this view active; set
other views to be inactive.

@param vp view provider
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/ViewPanel.java