package com.bytezone.diskbrowser.gui; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.util.ArrayList; import java.util.List; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JMenuItem; import javax.swing.JTextArea; import javax.swing.KeyStroke; // -----------------------------------------------------------------------------------// class LineWrapAction extends AbstractAction // -----------------------------------------------------------------------------------// { List listeners = new ArrayList<> (); // ---------------------------------------------------------------------------------// public LineWrapAction () // ---------------------------------------------------------------------------------// { super ("Line wrap"); putValue (Action.SHORT_DESCRIPTION, "Print the contents of the output panel"); putValue (Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke ("alt W")); putValue (Action.MNEMONIC_KEY, KeyEvent.VK_W); } // ---------------------------------------------------------------------------------// public void addListener (JTextArea listener) // ---------------------------------------------------------------------------------// { if (!listeners.contains (listener)) listeners.add (listener); } // ---------------------------------------------------------------------------------// @Override public void actionPerformed (ActionEvent e) // ---------------------------------------------------------------------------------// { for (JTextArea listener : listeners) listener.setLineWrap (((JMenuItem) e.getSource ()).isSelected ()); } }