package jas2.swingstudio;
import jas2.util.*;
import java.util.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Frame;
import java.awt.Component;
import jas2.hist.*;

public class WindowMenu extends JMenu
{
	public WindowMenu() 
	{
		super();
	}
	private void buildMenu()
	{
		removeAll();
		final int n = m_winMan.getWindowCount();
		final boolean areWindows = (n > 0);
		WindowMenuItem temp;

		add(temp = new WindowMenuItem("Close", WindowManager.CLOSE));
		temp.setEnabled(areWindows && m_winMan.getSelectedWindow() >= 0);
		temp.setMnemonic('C');

		add(temp = new WindowMenuItem("Close All", WindowManager.CLOSE_ALL));
		temp.setEnabled(areWindows);
		temp.setMnemonic('A');
		addSeparator();
		
		add(new JASMenuItem("Full Screen",'F'));
		addSeparator();
		
		boolean showRearrangeOptions = (m_winMan instanceof InternalFramesWindowManager && areWindows);
		add(temp = new WindowMenuItem("Cascade", InternalFramesWindowManager.CASCADE));
		temp.setEnabled(showRearrangeOptions);
		temp.setMnemonic('S');

		add(temp = new WindowMenuItem("Tile Horizontally", InternalFramesWindowManager.TILE_HORIZONTALLY));
		temp.setEnabled(showRearrangeOptions);
		temp.setMnemonic('H');

		add(temp = new WindowMenuItem("Tile Vertically", InternalFramesWindowManager.TILE_VERTICALLY));
		temp.setEnabled(showRearrangeOptions);
		temp.setMnemonic('V');

		if (areWindows)
		{
			addSeparator();
			for (int i=0; i < n; i++)
			{
				add(new WindowMenuItem(m_winMan.getWindowName(i), i));
			}
		}
	}
	protected void fireMenuSelected()
	{
		m_winMan = JavaAnalysisStudio.getApp().getWindowManager();
		buildMenu();
		super.fireMenuSelected();
	}
	private class WindowMenuItem extends JMenuItem
	{
		WindowMenuItem(String name, int i)
		{
			super((i >= 0) ? String.valueOf(i + 1) +" "+ name : name);
			index = i;
			if (i >= 0)
				setMnemonic('0' + (char) (i + 1));
		}
		protected void fireActionPerformed(ActionEvent evt)
		{
			if      (index == WindowManager.CLOSE_ALL) m_winMan.closeAllWindows();
			else if (index == WindowManager.CLOSE) m_winMan.closeWindow(m_winMan.getSelectedWindow());
			else if (index < 0) ((InternalFramesWindowManager) m_winMan).arrange(index);
			else m_winMan.selectWindow(index);
		}
		private int index;
	}	
	private WindowManager m_winMan;
}

 

Ads help maintain this website.