📄 svgpropertiescombowidget.java
字号:
/* * Created on 19 janv. 2005 * ============================================= GNU LESSER GENERAL PUBLIC LICENSE Version 2.1 =============================================GLIPS Graffiti Editor, a SVG EditorCopyright (C) 2004 Jordi SUC, Philippe Gil, SARL ITRISThis library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAContact : jordi.suc@itris.fr; philippe.gil@itris.fr ============================================= */package fr.itris.glips.svgeditor.properties;import java.awt.event.*;import java.util.*;import javax.swing.*;import fr.itris.glips.svgeditor.*;import fr.itris.glips.svgeditor.canvas.*;/** * @author Jordi SUC */public class SVGPropertiesComboWidget extends SVGPropertiesWidget { /** * the constructor of the class * @param propertyItem a property item */ public SVGPropertiesComboWidget(SVGPropertyItem propertyItem) { super(propertyItem); buildComponent(); } /** * builds the component that will be displayed */ protected void buildComponent(){ final SVGEditor editor=propertyItem.getProperties().getSVGEditor(); final ResourceBundle bundle=SVGEditor.getBundle(); final SVGFrame frame=editor.getFrameManager().getCurrentFrame(); LinkedList itemList=new LinkedList(); SVGPropertiesComboItem item=null, selectedItem=null; String cur=null, propertyValue=propertyItem.getGeneralPropertyValue(), value=""; //an item with an empty string item=new SVGPropertiesComboItem("",""); itemList.add(item); //builds the array of items for the combo for(Iterator it=propertyItem.getPropertyValuesMap().keySet().iterator(); it.hasNext();){ try{ cur=(String)it.next(); value=(String)propertyItem.getPropertyValuesMap().get(cur); item=new SVGPropertiesComboItem(value, (String)propertyItem.getPropertyValuesLabelMap().get(cur)); //checks if the current possible value is equals to the current value of the property if(value!=null && propertyValue!=null && value.equals(propertyValue)){ selectedItem=item; } }catch (Exception ex){item=null;} if(item!=null){ itemList.add(item); } } Object[] items=itemList.toArray(); //the combo box final JComboBox combo=new JComboBox(items); combo.setFont(theFont); //sets the selected item if(selectedItem!=null){ combo.setSelectedItem(selectedItem); } final ActionListener comboListener=new ActionListener(){ public void actionPerformed(ActionEvent evt) { String value=""; if(combo.getSelectedItem()!=null){ value=((SVGPropertiesComboItem)combo.getSelectedItem()).getValue(); } //modifies the widgetValue of the property item if(value!=null && !value.equals("")){ propertyItem.changePropertyValue(value); } } }; //adds a listener to the combo box combo.addActionListener(comboListener); //the panel that will be contained in the widget object JPanel panel=new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); panel.add(combo); component=panel; //creates the disposer disposer=new Runnable(){ public void run() { combo.removeActionListener(comboListener); } }; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -