From: Stephen C. <cr...@us...> - 2005-10-30 15:56:00
|
Update of /cvsroot/lexi/lexi/src/com/jmonkey/office/lexi/support In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19739/src/com/jmonkey/office/lexi/support Modified Files: ActionToolBar.java EditorActionManager.java Log Message: When the formatting etc actions are disabled, render their buttons with a greyed icon. Index: EditorActionManager.java =================================================================== RCS file: /cvsroot/lexi/lexi/src/com/jmonkey/office/lexi/support/EditorActionManager.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** EditorActionManager.java 28 Oct 2005 14:25:36 -0000 1.13 --- EditorActionManager.java 30 Oct 2005 15:55:47 -0000 1.14 *************** *** 26,34 **** import java.awt.Color; - import java.awt.Component; import java.awt.Font; - import java.awt.Graphics; import java.awt.GraphicsEnvironment; - import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; --- 26,31 ---- *************** *** 41,45 **** import javax.swing.AbstractAction; import javax.swing.Action; ! import javax.swing.ImageIcon; import javax.swing.JColorChooser; import javax.swing.JEditorPane; --- 38,42 ---- import javax.swing.AbstractAction; import javax.swing.Action; ! import javax.swing.JButton; import javax.swing.JColorChooser; import javax.swing.JEditorPane; *************** *** 56,61 **** import javax.swing.text.StyledDocument; - import com.jmonkey.office.lexi.support.images.Loader; - public class EditorActionManager extends ActionManager { --- 53,56 ---- *************** *** 175,180 **** } - // private static ThreadPool s_threadPool = null; - /** * Tracks caret movement and keeps the input attributes set to reflect the --- 170,173 ---- *************** *** 209,221 **** // ==================================================== ! private abstract class BaseEditorAction extends AbstractAction { protected final JFrame m_parent; ! public BaseEditorAction(String nm, JFrame component) { super(nm); m_parent = component; } ! public BaseEditorAction(String nm) { super(nm); m_parent = null; --- 202,215 ---- // ==================================================== ! public abstract class EditorAction extends AbstractAction { protected final JFrame m_parent; + private JButton m_associatedButton; ! public EditorAction(String nm, JFrame component) { super(nm); m_parent = component; } ! public EditorAction(String nm) { super(nm); m_parent = null; *************** *** 232,235 **** --- 226,243 ---- } + public void setEnabled(boolean enabled) { + if (this.enabled != enabled) { + super.setEnabled(enabled); + if (m_associatedButton != null && + m_associatedButton.isEnabled() != enabled) { + m_associatedButton.setEnabled(enabled); + } + } + } + + public void setAssociatedButton(JButton button) { + m_associatedButton = button; + } + protected abstract void doEditorAction(Editor editor, ActionEvent e); *************** *** 237,241 **** // ==================================================== ! private final class FontChooserAction extends BaseEditorAction { public FontChooserAction(String nm, JFrame component) { super(nm, component); --- 245,249 ---- // ==================================================== ! private final class FontChooserAction extends EditorAction { public FontChooserAction(String nm, JFrame component) { super(nm, component); *************** *** 269,273 **** // ==================================================== ! private final class FontFamilyAction extends BaseEditorAction { private String m_family; --- 277,281 ---- // ==================================================== ! private final class FontFamilyAction extends EditorAction { private String m_family; *************** *** 298,302 **** // =================================================== ! private final class FontSizeAction extends BaseEditorAction { private int m_size; --- 306,310 ---- // =================================================== ! private final class FontSizeAction extends EditorAction { private int m_size; *************** *** 328,332 **** // ============================================================== ! private final class ColourChooserAction extends BaseEditorAction { public ColourChooserAction(String nm, JFrame component) { super(nm, component); --- 336,340 ---- // ============================================================== ! private final class ColourChooserAction extends EditorAction { public ColourChooserAction(String nm, JFrame component) { super(nm, component); *************** *** 354,358 **** } ! private final class ForegroundAction extends BaseEditorAction { protected Color m_fg = null; --- 362,366 ---- } ! private final class ForegroundAction extends EditorAction { protected Color m_fg = null; *************** *** 386,390 **** } ! private final class AlignmentAction extends BaseEditorAction { private int m_alignment; --- 394,398 ---- } ! private final class AlignmentAction extends EditorAction { private int m_alignment; *************** *** 392,414 **** super(nm); m_alignment = alignment; - String icon; - switch (alignment) { - case StyleConstants.ALIGN_RIGHT: - icon = "align_right16.gif"; - break; - case StyleConstants.ALIGN_LEFT: - icon = "align_left16.gif"; - break; - case StyleConstants.ALIGN_CENTER: - icon = "align_center16.gif"; - break; - case StyleConstants.ALIGN_JUSTIFIED: - icon = "align_justify16.gif"; - break; - default: - // Huh? - return; - } - putValue(Action.SMALL_ICON, new ImageIcon(Loader.load(icon))); } --- 400,403 ---- *************** *** 429,437 **** } ! private final class BoldAction extends BaseEditorAction { public BoldAction() { super(BOLD_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("bold_action16.gif"))); } --- 418,424 ---- } ! private final class BoldAction extends EditorAction { public BoldAction() { super(BOLD_ACTION_PREFIX); } *************** *** 444,452 **** } ! private final class ItalicAction extends BaseEditorAction { public ItalicAction() { super(ITALIC_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("italic_action16.gif"))); } --- 431,437 ---- } ! private final class ItalicAction extends EditorAction { public ItalicAction() { super(ITALIC_ACTION_PREFIX); } *************** *** 459,467 **** } ! private final class UnderlineAction extends BaseEditorAction { public UnderlineAction() { super(UNDERLINE_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("underline_action16.gif"))); } --- 444,450 ---- } ! private final class UnderlineAction extends EditorAction { public UnderlineAction() { super(UNDERLINE_ACTION_PREFIX); } *************** *** 474,482 **** } ! private final class StrikeThroughAction extends BaseEditorAction { public StrikeThroughAction() { super(STRIKETHROUGH_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("strikethrough_action16.gif"))); } --- 457,463 ---- } ! private final class StrikeThroughAction extends EditorAction { public StrikeThroughAction() { super(STRIKETHROUGH_ACTION_PREFIX); } *************** *** 489,497 **** } ! private final class CutAction extends BaseEditorAction { public CutAction() { super(CUT_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("cut_action16.gif"))); } --- 470,476 ---- } ! private final class CutAction extends EditorAction { public CutAction() { super(CUT_ACTION_PREFIX); } *************** *** 501,509 **** } ! private final class CopyAction extends BaseEditorAction { public CopyAction() { super(COPY_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("copy_action16.gif"))); } --- 480,486 ---- } ! private final class CopyAction extends EditorAction { public CopyAction() { super(COPY_ACTION_PREFIX); } *************** *** 513,521 **** } ! private final class PasteAction extends BaseEditorAction { public PasteAction() { super(PASTE_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("paste_action16.gif"))); } --- 490,496 ---- } ! private final class PasteAction extends EditorAction { public PasteAction() { super(PASTE_ACTION_PREFIX); } *************** *** 525,529 **** } ! private final class BeepAction extends BaseEditorAction { public BeepAction() { super(BEEP_ACTION_PREFIX); --- 500,504 ---- } ! private final class BeepAction extends EditorAction { public BeepAction() { super(BEEP_ACTION_PREFIX); *************** *** 535,539 **** } ! private final class SelectAllAction extends BaseEditorAction { protected SelectAllAction() { super(SELECTALL_ACTION_PREFIX); --- 510,514 ---- } ! private final class SelectAllAction extends EditorAction { protected SelectAllAction() { super(SELECTALL_ACTION_PREFIX); *************** *** 547,551 **** } ! private final class SelectNoneAction extends BaseEditorAction { protected SelectNoneAction() { super(SELECTNONE_ACTION_PREFIX); --- 522,526 ---- } ! private final class SelectNoneAction extends EditorAction { protected SelectNoneAction() { super(SELECTNONE_ACTION_PREFIX); *************** *** 563,571 **** } ! protected final class UndoAction extends BaseEditorAction { protected UndoAction() { super(UNDO_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("undo_action16.gif"))); } --- 538,544 ---- } ! protected final class UndoAction extends EditorAction { protected UndoAction() { super(UNDO_ACTION_PREFIX); } *************** *** 577,585 **** } ! private final class RedoAction extends BaseEditorAction { protected RedoAction() { super(REDO_ACTION_PREFIX); - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("redo_action16.gif"))); } --- 550,556 ---- } ! private final class RedoAction extends EditorAction { protected RedoAction() { super(REDO_ACTION_PREFIX); } *************** *** 591,595 **** } ! private final class SearchAction extends BaseEditorAction { public SearchAction(String nm, JFrame component) { super(nm); --- 562,566 ---- } ! private final class SearchAction extends EditorAction { public SearchAction(String nm, JFrame component) { super(nm); *************** *** 601,605 **** } ! private final class ReplaceAction extends BaseEditorAction { public ReplaceAction(String nm, JFrame component) { --- 572,576 ---- } ! private final class ReplaceAction extends EditorAction { public ReplaceAction(String nm, JFrame component) { *************** *** 612,616 **** } ! private final class NewAction extends BaseEditorAction { private FileActionListener m_listener; --- 583,587 ---- } ! private final class NewAction extends EditorAction { private FileActionListener m_listener; *************** *** 618,623 **** super(name); m_listener = agent; - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("new_document16.gif"))); } --- 589,592 ---- *************** *** 627,631 **** } ! private final class OpenAction extends BaseEditorAction { private FileActionListener m_listener; --- 596,600 ---- } ! private final class OpenAction extends EditorAction { private FileActionListener m_listener; *************** *** 633,638 **** super(name); m_listener = agent; - putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("open_document16.gif"))); } --- 602,605 ---- *************** *** 642,646 **** } ! private final class OpenAsAction extends BaseEditorAction { private FileActionListener m_listener; --- 609,613 ---- } ! private final class OpenAsAction extends EditorAction { private FileActionListener m_listener; *************** *** 655,659 **** } ! private final class RevertAction extends BaseEditorAction { private FileActionListener m_listener; --- 622,626 ---- } ! private final class RevertAction extends EditorAction { private FileActionListener m_listener; *************** *** 668,672 **** } ! private final class SaveAction extends BaseEditorAction { private FileActionListener m_listener; --- 635,639 ---- } ! private final class SaveAction extends EditorAction { private FileActionListener m_listener; *************** *** 674,679 **** super(name); m_listener = agent; - this.putValue(Action.SMALL_ICON, - new ImageIcon(Loader.load("save_document16.gif"))); } --- 641,644 ---- *************** *** 683,687 **** } ! private final class SaveAsAction extends BaseEditorAction { private FileActionListener m_listener = null; --- 648,652 ---- } ! private final class SaveAsAction extends EditorAction { private FileActionListener m_listener = null; *************** *** 696,700 **** } ! private final class SaveCopyAction extends BaseEditorAction { private FileActionListener m_listener; --- 661,665 ---- } ! private final class SaveCopyAction extends EditorAction { private FileActionListener m_listener; *************** *** 729,745 **** } - private Image create16x16ColourRec(Component c, Color colour) { - Code.debug("Component=" + c); - Code.debug("Color=" + colour); - Image img = c.createImage(16, 16); - Code.debug("Image=" + img); - Graphics g = img.getGraphics(); - Code.debug("Graphics=" + g); - g.setColor(colour); - g.fillRect(0, 0, 16, 16); - Code.debug("Coloured Image=" + img); - return img; - } - /** * Create the default actions of the type: FONT_COLOUR_ACTION --- 694,697 ---- Index: ActionToolBar.java =================================================================== RCS file: /cvsroot/lexi/lexi/src/com/jmonkey/office/lexi/support/ActionToolBar.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ActionToolBar.java 23 Aug 2005 15:06:31 -0000 1.6 --- ActionToolBar.java 30 Oct 2005 15:55:47 -0000 1.7 *************** *** 26,29 **** --- 26,30 ---- package com.jmonkey.office.lexi.support; + import java.awt.Image; import java.awt.Insets; import java.beans.PropertyChangeListener; *************** *** 31,38 **** import javax.swing.Action; ! import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JToolBar; public final class ActionToolBar extends JToolBar { /* registry of listeners created for Action-JButton --- 32,42 ---- import javax.swing.Action; ! import javax.swing.GrayFilter; ! import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JToolBar; + import com.jmonkey.office.lexi.support.images.Loader; + public final class ActionToolBar extends JToolBar { /* registry of listeners created for Action-JButton *************** *** 41,66 **** */ private static Hashtable s_listenerRegistry = null; ! ! /** ! * Add a new JButton which dispatches the action. ! * ! * @param action the Action object to add as a new menu item ! */ ! public JButton add(Action action) { ! JButton button = new JButton((String) action.getValue(Action.NAME), ! (Icon) action.getValue(Action.SMALL_ICON)); ! button.setHorizontalTextPosition(JButton.CENTER); ! button.setVerticalTextPosition(JButton.BOTTOM); ! button.setEnabled(action.isEnabled()); ! button.addActionListener(action); ! add(button); ! // FIXME - according the javadoc for the following method, we should be ! // doing this. crawley 2005-08-24 ! PropertyChangeListener listener = createActionChangeListener(button); ! addToRegistry(button, listener, action); ! action.addPropertyChangeListener(listener); ! return button; ! } ! private void addToRegistry(JButton button, PropertyChangeListener listener, Action action) --- 45,49 ---- */ private static Hashtable s_listenerRegistry = null; ! private void addToRegistry(JButton button, PropertyChangeListener listener, Action action) *************** *** 79,97 **** * * @param action the Action object to add as a new menu item ! * @param showText true if the button should show the action text. */ ! public JButton add(boolean showText, Action action) { ! JButton button = showText ? ! new JButton((String) action.getValue(Action.NAME), ! (Icon) action.getValue(Action.SMALL_ICON)) : ! new JButton((Icon) action.getValue(Action.SMALL_ICON)); ! if (showText){ button.setHorizontalTextPosition(JButton.CENTER); button.setVerticalTextPosition(JButton.BOTTOM); ! } else { button.setMargin(new Insets(0, 0, 0, 0)); } button.setEnabled(action.isEnabled()); button.addActionListener(action); --- 62,85 ---- * * @param action the Action object to add as a new menu item ! * @param imageName the name of the image to be used as the button's icon. ! * If <code>null</code>, display the action name on the button instead. */ ! public JButton add(Action action, String imageName) { ! JButton button; ! ! if (imageName == null) { ! button = new JButton((String) action.getValue(Action.NAME)); button.setHorizontalTextPosition(JButton.CENTER); button.setVerticalTextPosition(JButton.BOTTOM); ! } else { + Image image = Loader.load(imageName); + Image disabledImage = GrayFilter.createDisabledImage(image); + button = new JButton(new ImageIcon(image)); + button.setDisabledIcon(new ImageIcon(disabledImage)); button.setMargin(new Insets(0, 0, 0, 0)); } + button.setEnabled(action.isEnabled()); button.addActionListener(action); *************** *** 102,105 **** --- 90,97 ---- addToRegistry(button, listener, action); action.addPropertyChangeListener(listener); + + if (action instanceof EditorActionManager.EditorAction) { + ((EditorActionManager.EditorAction) action).setAssociatedButton(button); + } return button; } |