001: /*
002: * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
003: *
004: * The program is provided "as is" without any warranty express or
005: * implied, including the warranty of non-infringement and the implied
006: * warranties of merchantibility and fitness for a particular purpose.
007: * IBM will not be liable for any damages suffered by you as a result
008: * of using the Program. In no event will IBM be liable for any
009: * special, indirect or consequential damages or lost profits even if
010: * IBM has been advised of the possibility of their occurrence. IBM
011: * will not be liable for any third party claims against you.
012: */
013: package com.ibm.richtext.awtui;
014:
015: import com.ibm.richtext.textpanel.MTextPanel;
016: import com.ibm.richtext.textpanel.TextPanel;
017: import com.ibm.richtext.styledtext.MConstText;
018:
019: import java.awt.BorderLayout;
020: import java.awt.Frame;
021: import java.awt.MenuBar;
022: import java.awt.Toolkit;
023:
024: import java.awt.datatransfer.Clipboard;
025:
026: import java.awt.event.WindowAdapter;
027: import java.awt.event.WindowEvent;
028:
029: /**
030: * TextFrame is a Frame containing an editable TextPanel, a set of standard
031: * menus, and a TabRuler. This class can be used as-is, but is
032: * primarily intended to be a simple example of how to use the other classes
033: * in this package.
034: * @see com.ibm.richtext.textpanel.TextPanel
035: * @see AwtMenuBuilder
036: * @see TabRuler
037: */
038: public final class TextFrame extends Frame {
039:
040: static final String COPYRIGHT = "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved";
041: private TextPanel fTextPanel;
042:
043: /**
044: * Create a new TextFrame with no text and no title.
045: */
046: public TextFrame() {
047:
048: super ();
049: init(null, Toolkit.getDefaultToolkit().getSystemClipboard());
050: }
051:
052: /**
053: * Create a new TextFrame with no text and the given title.
054: * @param title the title of this Frame
055: */
056: public TextFrame(String title) {
057:
058: super (title);
059: init(null, Toolkit.getDefaultToolkit().getSystemClipboard());
060: }
061:
062: /**
063: * Create a new TextFrame with the given text and title, whose
064: * TextPanel will use the given clipboard.
065: * @param text the initial text in the TextPanel. If null the
066: * TextPanel will initially be empty
067: * @param title the title of this Frame
068: * @param clipboard the Clipboard which the TextPanel will use.
069: * If null the TextPanel will use a private Clipboard
070: */
071: public TextFrame(MConstText text, String title, Clipboard clipboard) {
072:
073: super (title);
074: init(text, clipboard);
075: }
076:
077: private void init(MConstText text, Clipboard clipboard) {
078:
079: fTextPanel = new TextPanel(text, clipboard);
080:
081: TabRuler tabRuler = new TabRuler(14, 10, fTextPanel);
082:
083: createMenus();
084:
085: setLayout(new BorderLayout());
086: add(fTextPanel, "Center");
087: add(tabRuler, "North");
088: pack();
089: }
090:
091: private void createMenus() {
092:
093: MenuBar menuBar = new MenuBar();
094:
095: AwtMenuBuilder.getInstance().createMenus(menuBar, fTextPanel,
096: this );
097:
098: setMenuBar(menuBar);
099: }
100:
101: /**
102: * Return the MTextPanel in this frame.
103: */
104: public MTextPanel getTextPanel() {
105:
106: return fTextPanel;
107: }
108:
109: public static void main(String[] args) {
110:
111: TextFrame frame = new TextFrame();
112: frame.addWindowListener(new WindowAdapter() {
113: public void windowClosing(WindowEvent e) {
114: System.exit(0);
115: }
116: });
117: frame.setSize(550, 700);
118: frame.show();
119: }
120: }
|