|
What this is
Other links
The source code// $Id: StylePanelFigText.java,v 1.9 2004/09/21 19:03:28 mvw Exp $ // Copyright (c) 1996-2004 The Regents of the University of California. All // Rights Reserved. Permission to use, copy, modify, and distribute this // software and its documentation without fee, and without a written // agreement is hereby granted, provided that the above copyright notice // and this paragraph appear in all copies. This software program and // documentation are copyrighted by The Regents of the University of // California. The software program and documentation are supplied "AS // IS", without any accompanying services from The Regents. The Regents // does not warrant that the operation of the program will be // uninterrupted or error-free. The end-user understands that the program // was developed for research purposes and is advised not to rely // exclusively on the program for any reason. IN NO EVENT SHALL THE // UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, // SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, // ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF // THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE // PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF // CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, // UPDATES, ENHANCEMENTS, OR MODIFICATIONS. package org.argouml.ui; import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ItemEvent; import javax.swing.JComboBox; import javax.swing.JLabel; import org.tigris.gef.presentation.FigText; import org.tigris.gef.ui.ColorRenderer; /** * StylePanel class which provides additional parameters for changing Text * elements provided by GEF. * TODO: i18n */ public class StylePanelFigText extends StylePanelFig { private static final String FONT_NAMES[] = { "dialog", "serif", "sanserif", "monospaced", }; private static final Integer COMMON_SIZES[] = { new Integer(8), new Integer(9), new Integer(10), new Integer(12), new Integer(16), new Integer(18), new Integer(24), new Integer(36), new Integer(48), new Integer(72), new Integer(96), }; private static final String STYLES[] = { "Plain", "Bold", "Italic", "Bold-Italic", }; private static final String JUSTIFIES[] = { "Left", "Right", "Center", }; private JLabel fontLabel = new JLabel("Font: "); private JComboBox fontField = new JComboBox(FONT_NAMES); private JLabel sizeLabel = new JLabel("Size: "); private JComboBox sizeField = new JComboBox(COMMON_SIZES); private JLabel styleLabel = new JLabel("Style: "); private JComboBox styleField = new JComboBox(STYLES); private JLabel justLabel = new JLabel("Justify: "); private JComboBox justField = new JComboBox(JUSTIFIES); private JLabel textColorLabel = new JLabel("Text Color: "); private JComboBox textColorField = new JComboBox(); private JLabel textFillLabel = new JLabel("Text Fill: "); private JComboBox textFillField = new JComboBox(); /** * Construct default style panel for text elements. * */ public StylePanelFigText() { super(); GridBagLayout gb = (GridBagLayout) getLayout(); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.BOTH; c.ipadx = 0; c.ipady = 0; fontField.addItemListener(this); sizeField.addItemListener(this); styleField.addItemListener(this); justField.addItemListener(this); textColorField.addItemListener(this); textFillField.addItemListener(this); textColorField.setRenderer(new ColorRenderer()); textFillField.setRenderer(new ColorRenderer()); c.weightx = 0.0; c.gridx = 0; c.gridwidth = 1; c.gridy = 5; gb.setConstraints(textColorLabel, c); add(textColorLabel); c.gridy = 6; gb.setConstraints(textFillLabel, c); add(textFillLabel); c.gridx = 3; c.gridwidth = 1; c.gridy = 1; gb.setConstraints(fontLabel, c); add(fontLabel); c.gridy = 2; gb.setConstraints(sizeLabel, c); add(sizeLabel); c.gridy = 3; gb.setConstraints(styleLabel, c); add(styleLabel); // row 4 left blank for some reason... c.gridy = 5; gb.setConstraints(justLabel, c); add(justLabel); c.weightx = 1.0; c.gridx = 1; c.gridy = 5; gb.setConstraints(textColorField, c); add(textColorField); c.gridy = 6; gb.setConstraints(textFillField, c); add(textFillField); c.gridx = 4; c.gridy = 1; gb.setConstraints(fontField, c); add(fontField); c.gridy = 2; gb.setConstraints(sizeField, c); add(sizeField); c.gridy = 3; gb.setConstraints(styleField, c); add(styleField); c.gridy = 5; gb.setConstraints(justField, c); add(justField); initChoices2(); } /** * Second part of the default style panel construction. */ protected void initChoices2() { textColorField.addItem(Color.black); textColorField.addItem(Color.white); textColorField.addItem(Color.gray); textColorField.addItem(Color.lightGray); textColorField.addItem(Color.darkGray); textColorField.addItem(Color.red); textColorField.addItem(Color.blue); textColorField.addItem(Color.green); textColorField.addItem(Color.orange); textColorField.addItem(Color.pink); textColorField.addItem("Custom..."); textFillField.addItem("No Fill"); textFillField.addItem(Color.black); textFillField.addItem(Color.white); textFillField.addItem(Color.gray); textFillField.addItem(Color.lightGray); textFillField.addItem(Color.darkGray); textFillField.addItem(Color.red); textFillField.addItem(Color.blue); textFillField.addItem(Color.green); textFillField.addItem(Color.orange); textFillField.addItem(Color.pink); textFillField.addItem("Custom..."); } /** * refresh the text element with all selected values. * * @see org.argouml.ui.TabTarget#refresh() */ public void refresh() { super.refresh(); FigText ft = (FigText) getPanelTarget(); String fontName = ft.getFontFamily(); int size = ft.getFontSize(); String styleName = STYLES[0]; fontField.setSelectedItem(fontName); sizeField.setSelectedItem(new Integer(size)); if (ft.getBold()) styleName = STYLES[1]; if (ft.getItalic()) styleName = STYLES[2]; if (ft.getBold() && ft.getItalic()) styleName = STYLES[3]; styleField.setSelectedItem(styleName); String justName = JUSTIFIES[0]; int justCode = ft.getJustification(); if (justCode >= 0 && justCode <= JUSTIFIES.length) justName = JUSTIFIES[justCode]; justField.setSelectedItem(justName); Color c = ft.getTextColor(); textColorField.setSelectedItem(c); if (c != null && !textColorField.getSelectedItem().equals(c)) { textColorField.insertItemAt(c, textColorField.getItemCount() - 1); textColorField.setSelectedItem(c); } c = ft.getTextFillColor(); getFillField().setSelectedItem(c); if (c != null && !getFillField().getSelectedItem().equals(c)) { getFillField().insertItemAt(c, getFillField().getItemCount() - 1); getFillField().setSelectedItem(c); } } /** * set the font of the text element to the selected value. * */ protected void setTargetFont() { if (getPanelTarget() == null) return; String fontStr = (String) fontField.getSelectedItem(); if (fontStr.length() == 0) return; ((FigText) getPanelTarget()).setFontFamily(fontStr); getPanelTarget().endTrans(); } /** * change font size of the text element according to the selected value. * */ protected void setTargetSize() { if (getPanelTarget() == null) return; Integer size = (Integer) sizeField.getSelectedItem(); ((FigText) getPanelTarget()).setFontSize(size.intValue()); getPanelTarget().endTrans(); } /** * change style of the text element (bold/italic) according to the selected * value. * */ protected void setTargetStyle() { if (getPanelTarget() == null) return; String styleStr = (String) styleField.getSelectedItem(); if (styleStr == null) return; boolean bold = (styleStr.indexOf("Bold") != -1); boolean italic = (styleStr.indexOf("Italic") != -1); ((FigText) getPanelTarget()).setBold(bold); ((FigText) getPanelTarget()).setItalic(italic); getPanelTarget().endTrans(); } /** * change the justification of the text according to the selected value. * */ protected void setTargetJustification() { if (getPanelTarget() == null) return; String justStr = (String) justField.getSelectedItem(); if (justStr == null) return; ((FigText) getPanelTarget()).setJustificationByName(justStr); getPanelTarget().endTrans(); } /** * change color of the text fill / background to the selected value. * */ protected void setTargetTextFill() { if (getPanelTarget() == null) return; Object c = textFillField.getSelectedItem(); if (c instanceof Color) ((FigText) getPanelTarget()).setTextFillColor((Color) c); ((FigText) getPanelTarget()).setTextFilled(c instanceof Color); getPanelTarget().endTrans(); } /** * change the color of the text element according to the selected value. * */ protected void setTargetTextColor() { if (getPanelTarget() == null) return; Object c = textColorField.getSelectedItem(); if (c instanceof Color) ((FigText) getPanelTarget()).setTextColor((Color) c); getPanelTarget().endTrans(); } /** * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent) */ public void itemStateChanged(ItemEvent e) { Object src = e.getSource(); if (src == fontField) setTargetFont(); else if (src == sizeField) setTargetSize(); else if (src == styleField) setTargetStyle(); else if (src == justField) setTargetJustification(); else if (src == textColorField) setTargetTextColor(); else if (src == textFillField) setTargetTextFill(); else super.itemStateChanged(e); } } /* end class StylePanelFigText */ |
... this post is sponsored by my books ... | |
![]() #1 New Release! |
![]() FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.