⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systemtoolpagepanel.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
字号:
/*
 *    This program is free software; you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation; either version 2 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with this program; if not, write to the Free Software
 *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

/*
 * Created on 2006/8/7
 *
 * @Author: Xiaojun Chen
 * $Revision$ 1.0
 *
 */

package eti.bi.alphaminer.tools.SystemTools;

import java.awt.Color;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.BoxLayout;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import eti.bi.alphaminer.core.observer.HelpObserver;
import eti.bi.alphaminer.core.observer.Observer;

public class SystemToolPagePanel extends JScrollPane implements 
Observer,
HelpObserver, ActionListener{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private JPanel viewPort;
	private BoxLayout layout;
	private MenuItemGroup m_MenuItemGroup;
	//private Vector<SystemToolPanel> Tools = new Vector<SystemToolPanel>();

	public SystemToolPagePanel(String name){
		setName(name);
		this.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		this.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
		viewPort = new JPanel();
		
		/*
		layout = new GridBagLayout();
		constraints = new GridBagConstraints();
		constraints.fill = GridBagConstraints.BOTH;
		constraints.weighty = 1.0;
		*/
		layout = new BoxLayout(viewPort, BoxLayout.Y_AXIS);
		
		viewPort.setLayout(layout);
		
		getViewport().add(viewPort);
		getHorizontalScrollBar().setUnitIncrement(10);
		getVerticalScrollBar().setUnitIncrement(10);
		viewPort.setBackground(Color.white);
		
		JPanel emptyPanel = new JPanel(); 
		emptyPanel.setBackground(Color.white);
		viewPort.add(emptyPanel);
		
		m_MenuItemGroup = new MenuItemGroup();
	}
	
	/**
	 * @author Xiaojun Chen
	 * @see java.awt.Component#addMouseListener(MouseListener)
	 * */
	public void addToolPageMouseListener(MouseListener l) {
		int size = m_MenuItemGroup.size();
		for(int i=0;i<size;i++) {
			((ToolPaneStateMenuItem)m_MenuItemGroup.get(i)).addToolMouseListener(l);
		}
	}
	
	public void addToolPanel(SystemToolPanel aToolPanel){
		if(aToolPanel!=null){
			aToolPanel.setBackground(Color.white);
			
			viewPort.add(aToolPanel,viewPort.getComponentCount()-1);
			
			//constraints.gridwidth = GridBagConstraints.REMAINDER;
			//layout.addLayoutComponent(aToolPanel, constraints);
			
			ToolPaneStateMenuItem menuItem = new ToolPaneStateMenuItem(this,aToolPanel, aToolPanel.getName());
			menuItem.setSelected(true);
			menuItem.addActionListener(this);
			m_MenuItemGroup.add(menuItem);
		}
	}
	
	
	public SystemToolPanel getToolPanleAt(Point point) {
		if(point==null) {
			return null;
		}
		int size = m_MenuItemGroup.size();
		JComponent menuItem;
		SystemToolPanel tooPanel;
		for(int i=0;i<size;i++) {
			menuItem = m_MenuItemGroup.get(i);
			if(menuItem instanceof ToolPaneStateMenuItem) {
				tooPanel = ((ToolPaneStateMenuItem)menuItem).ToolPanel;
				if(tooPanel.getBounds().contains(point)) {
					return tooPanel;
				}
			}
		}
		return null;
	}
	
	public JComponent getTopComponentAt(Point point) {
		SystemToolPanel tooPanel = getToolPanleAt(point);
		if(tooPanel==null) {
			return null;
		}
		return tooPanel.getTopComponentAt(point);
	}
	
	public boolean showTool(int index){
		if(index>=0&&m_MenuItemGroup.size()>index){
			((ToolPaneStateMenuItem)m_MenuItemGroup.get(index)).showToll();
			viewPort.repaint();
			return true;
		}
		return false;
	}
	
	public boolean showTool(SystemToolPanel aPanel) {
		if(aPanel!=null) {
			ToolPaneStateMenuItem menuItem = getMenuItem(aPanel);
			if(menuItem==null) {
				return false;
			}
			menuItem.showToll();
			viewPort.repaint();
			return true;
		}
		return false;
	}
	
	public void showAllTool() {
		int size = m_MenuItemGroup.size();
		for(int i=0;i<size;i++) {
			((ToolPaneStateMenuItem)m_MenuItemGroup.get(i)).showToll();
		}
		viewPort.repaint();
	}
	
	public boolean hideTool(int index){
		if(index>=0&&m_MenuItemGroup.size()>index){
			((ToolPaneStateMenuItem)m_MenuItemGroup.get(index)).hideTool();
			return true;
		}
		return false;
	}
	
	public boolean hideTool(SystemToolPanel aPanel) {
		if(aPanel!=null) {
			ToolPaneStateMenuItem menuItem = getMenuItem(aPanel);
			if(menuItem==null) {
				return false;
			}
			menuItem.hideTool();
			viewPort.repaint();
			return true;
		}
		return false;
	}
	
	public void hideAllTool() {
		int size = m_MenuItemGroup.size();
		for(int i=0;i<size;i++) {
			((ToolPaneStateMenuItem)m_MenuItemGroup.get(i)).hideTool();
		}
		viewPort.repaint();
	}
	
	public void addMenuItem(JComponent menuItem) {
		m_MenuItemGroup.add(menuItem);
	}
	
	public MenuItemGroup getMenuItemGroup() {
		return m_MenuItemGroup;
	}
	
	public ToolPaneStateMenuItem getMenuItem(SystemToolPanel aToolPanel) {
		int size = m_MenuItemGroup.size();
		for(int i=0;i<size;i++) {
			if(m_MenuItemGroup.get(i)instanceof ToolPaneStateMenuItem) {
				ToolPaneStateMenuItem aItem = (ToolPaneStateMenuItem) m_MenuItemGroup.get(i);
				if(aItem.equalPanel(aToolPanel)) {
					return aItem;
				}
			}
		}
		
		return null;
	}
	
	public int getToolscount() {
		return m_MenuItemGroup.size();
	}
	
	public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();
		if(source instanceof ToolPaneStateMenuItem) {
			ToolPaneStateMenuItem menuItem = (ToolPaneStateMenuItem)source;
			if(menuItem.isSelected()) {
				menuItem.ToolPanel.setVisible(true);
			}
			else {
				menuItem.ToolPanel.setVisible(false);
			}
		}
	}
	
	public void sendNotify(String a_Message) {
		
	}

	public void sendNotify(int a_Message) {
		
	}

	public void sendNotify(int a_Message, Object a_Object) {
		
	}

	public void Update(boolean a_HelpState) {
		
	}

	/**
	 * Reset UI language to specific language
	 * */
	public void resetLanguage() {
		int size = m_MenuItemGroup.size();
		for(int i=0;i<size;i++) {
			if(m_MenuItemGroup.get(i)instanceof ToolPaneStateMenuItem) {
				ToolPaneStateMenuItem aItem = (ToolPaneStateMenuItem) m_MenuItemGroup.get(i);
				aItem.ToolPanel.resetLocale();
				aItem.setText(aItem.ToolPanel.getName());
			}
		}
	}
}
class ToolPaneStateMenuItem extends JCheckBoxMenuItem implements ActionListener{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	SystemToolPanel ToolPanel;
	SystemToolPagePanel systemToolPanel;
	
	public ToolPaneStateMenuItem(SystemToolPagePanel systemToolPanel, SystemToolPanel aPanel, String name) {
		super(name);
		ToolPanel = aPanel;
		this.systemToolPanel = systemToolPanel;
	}

	public void actionPerformed(ActionEvent e) {
		if(ToolPanel.isVisible()) {
			hideTool();
		}
		else {
			showToll();
		}
	}
	
	public void showToll() {
		ToolPanel.showTool();
		setSelected(true);
	}
	
	public void hideTool() {
		ToolPanel.hideTool();
		setSelected(false);
	}
	
	/**
	 * add MouseListener to ToolPanel
	 * @author Xiaojun Chen
	 * @param    l   the mouse listener
	 * */
	public void addToolMouseListener(MouseListener l) {
		ToolPanel.addToolMouseListener(l);
	}
	
	public boolean equalPanel(SystemToolPanel aToolPanel) {
		return ToolPanel==aToolPanel;
	} 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -