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

📄 toolbarmaker.java

📁 化学图形处理软件
💻 JAVA
字号:
/* *  $RCSfile$ *  $Author: egonw $ *  $Date: 2007-01-04 18:26:00 +0100 (Thu, 04 Jan 2007) $ *  $Revision: 7634 $ * *  Copyright (C) 1997-2007  The JChemPaint project * *  Contact: jchempaint-devel@lists.sourceforge.net * *  This program is free software; you can redistribute it and/or *  modify it under the terms of the GNU Lesser General Public License *  as published by the Free Software Foundation; either version 2.1 *  of the License, or (at your option) any later version. *  All we ask is that proper credit is given for our work, which includes *  - but is not limited to - adding the above copyright notice to the beginning *  of your source code files, and to any copyright notice that you may distribute *  with programs based on this work. * *  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 Lesser General Public License for more details. * *  You should have received a copy of the GNU Lesser General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */package org.openscience.cdk.applications.jchempaint;import java.awt.Color;import java.awt.Component;import java.awt.Dimension;import java.awt.Insets;import java.net.URL;import java.util.MissingResourceException;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JToolBar;import javax.swing.SwingConstants;import org.openscience.cdk.applications.jchempaint.action.ElementAction;import org.openscience.cdk.applications.jchempaint.action.JCPAction;import org.openscience.cdk.tools.LoggingTool;/** *  This class makes the JCPToolBar * *@author        steinbeck *@cdk.created       16. Februar 2005 *@cdk.module    jchempaint *@see           JChemPaintViewerOnlyPanel */public class ToolBarMaker {	private static LoggingTool logger;	/**	 *  Gets the toolbar attribute of the MainContainerPanel object	 *	 *@return    The toolbar value	 */	public static JToolBar getToolbar(JChemPaintPanel jcpp, int lines)	{		if (logger == null)		{			logger = new LoggingTool(ToolBarMaker.class);		}				JToolBar maintoolbar=(JToolBar)createToolbar(SwingConstants.HORIZONTAL, "toolbar", jcpp, lines, false);		JToolBar elementtoolbar=(JToolBar)createToolbar(SwingConstants.HORIZONTAL, "elementtoolbar", jcpp, lines*2, true);		maintoolbar.add(elementtoolbar);		return maintoolbar;	}	/**	 *  Gets the menuResourceString attribute of the JChemPaint object	 *	 *@param  key  Description of the Parameter	 *@return      The menuResourceString value	 */	static String getToolbarResourceString(String key)	{		String str;		try		{			str = JCPPropertyHandler.getInstance().getGUIDefinition().getString(key);		} catch (MissingResourceException mre)		{			str = null;		}		return str;	}	/**	 *  Creates a JButton given by a String with an Image and adds the right	 *  ActionListener to it.	 *	 *@param  key  String The string used to identify the button	 *@param  elementtype  If true a special type of button for element symbols will be created	 *@return      JButton The JButton with already added ActionListener	 */	static JButton createToolbarButton(String key, JChemPaintPanel jcpp, boolean elementtype)	{		JCPPropertyHandler jcpph = JCPPropertyHandler.getInstance();		JButton b = null;		if(!elementtype){			logger.debug("Trying to find resource for key: ", key);			URL url = jcpph.getResource(key + JCPAction.imageSuffix);			logger.debug("Trying to find resource: ", url);			if (url == null)			{				logger.error("Cannot find resource: ", key, JCPAction.imageSuffix);				return null;			}			ImageIcon image = new ImageIcon(url);			if (image == null)			{				logger.error("Cannot find image: ", url);				return null;			}			b =				new JButton(image)				{					/**					 * 					 */					private static final long serialVersionUID = 1478990892406874403L;					public float getAlignmentY()					{						return 0.5f;					}				};				String astr = jcpph.getResourceString(key + JCPAction.actionSuffix);				if (astr == null)				{					astr = key;				}				JCPAction a = new JCPAction().getAction(jcpp, astr);				if (a != null)				{					b.setActionCommand(astr);					logger.debug("Coupling action to button...");					b.addActionListener(a);					b.setEnabled(a.isEnabled());				} else				{					logger.error("Could not find JCPAction class for:", astr);					b.setEnabled(false);				}				try				{					String tip = JCPLocalizationHandler.getInstance().getString(key + JCPConstants.TIPSUFFIX);					if (tip != null)					{						b.setToolTipText(tip);					}				} catch (MissingResourceException e)				{					logger.warn("Could not find Tooltip resource for: ", key);					logger.debug(e);				}		}else{			b=new JButton(key);			JCPAction a = new ElementAction(key,jcpp);			b.addActionListener(a);			b.setEnabled(a.isEnabled());			if(JCPLocalizationHandler.getInstance().getString("singleelementTooltip")!=null)				b.setToolTipText(JCPLocalizationHandler.getInstance().getString("singleelementTooltip")+" "+key);			b.setSize(30,15);			b.setPreferredSize(new Dimension(30,15));			b.setMaximumSize(new Dimension(30,15));		}		b.setRequestFocusEnabled(false);		b.setMargin(new Insets(1, 1, 1, 1));		if(key.equals("bond"))			jcpp.lastAction.add(b);		if(key.equals("move"))			jcpp.moveButton=b;		return b;	}	/**	 *  Creates a toolbar given by a String with all the buttons that are specified	 *  in the properties file.	 *	 *@param  orientation  int The orientation of the toolbar	 *@param  kind         String The String used to identify the toolbar	 *@param  elementtype  If true a special type of toolbar for element symbols will be created	 *@return              Component The created toolbar	 */	public static Component createToolbar(int orientation, String kind, JChemPaintPanel jcpp, int lines, boolean elementtype)	{		JToolBar toolbar2 = new JToolBar(orientation);		String[] toolKeys = StringHelper.tokenize(getToolbarResourceString(kind));		JButton button = null;		if (toolKeys.length != 0)		{			String[] sdiToolKeys = new String[(toolKeys.length)];			for (int i = 0; i < toolKeys.length; i++)			{				int j = i - 0;				sdiToolKeys[j] = toolKeys[i];			}			toolKeys = sdiToolKeys;		}		Box box=null;		int counter=0;		for (int i = 0; i < toolKeys.length; i++)		{			if (toolKeys[i].equals("-"))			{				toolbar2.add(box);				if (orientation == SwingConstants.HORIZONTAL)				{					toolbar2.add(Box.createHorizontalStrut(5));				} else if (orientation == SwingConstants.VERTICAL)				{					toolbar2.add(Box.createVerticalStrut(5));				}				counter=0;			} 			else			{				if(counter % lines==0){					if(box!=null)						toolbar2.add(box);					box=new Box(BoxLayout.Y_AXIS);				}				button = (JButton) createToolbarButton(toolKeys[i], jcpp, elementtype);				/*if (toolKeys[i].equals("lasso"))				{					selectButton = button;				}*/				if (button != null)				{					box.add(button);					if (toolKeys[i].equals("bond") && !elementtype)					{						button.setBackground(Color.GRAY);					} else					{						button.setBackground(Color.LIGHT_GRAY);					}				} else				{					logger.error("Could not create button"+toolKeys[i]);				}				counter++;			}		}		if(box!=null)				toolbar2.add(box);		if (orientation == SwingConstants.HORIZONTAL)		{			toolbar2.add(Box.createHorizontalGlue());		}		return toolbar2;	}}

⌨️ 快捷键说明

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