copy and paste features are fixed.

This commit is contained in:
amontano 2002-10-27 18:48:03 +00:00
parent 7336d27a33
commit 8391f19a8d

View file

@ -46,10 +46,10 @@ import org.thdl.tib.text.TibetanDocument;
*/ */
public class AppletScannerFilter extends JApplet implements ActionListener, FocusListener, ItemListener public class AppletScannerFilter extends JApplet implements ActionListener, FocusListener, ItemListener
{ {
private JMenuItem mnuSelectAll, aboutItem, mnuClear; // mnuCut, mnuCopy, mnuPaste, mnuDelete private JMenuItem mnuSelectAll, aboutItem, mnuClear, mnuCut, mnuCopy, mnuPaste, mnuDelete;
private JCheckBoxMenuItem tibScript; private JCheckBoxMenuItem tibScript;
// private JMenu mnuEdit; private JMenu mnuEdit;
private Object objModified; private Object objModified;
private Dialog diagAbout; private Dialog diagAbout;
ScannerPanel sp; ScannerPanel sp;
@ -68,38 +68,42 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
url = getCodeBase() + url; url = getCodeBase() + url;
} }
// panel = new SimpleScannerPanel(url); // sp = new SimpleScannerPanel(url);
sp = new DuffScannerPanel(url); sp = new DuffScannerPanel(url);
sp.addFocusListener(this); sp.addFocusListener(this);
setContentPane(sp); setContentPane(sp);
// setup the menu. Almost identical to WindowScannerFilter, but using swing. // setup the menu. Almost identical to WindowScannerFilter, but using swing.
JMenuBar mb = new JMenuBar(); JMenuBar mb = new JMenuBar();
// mnuEdit mnuEdit = new JMenu ("Edit");
JMenu m = new JMenu ("Edit"); mnuCut = new JMenuItem("Cut");
/* mnuCut = new JMenuItem("Cut"); mnuCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, java.awt.Event.CTRL_MASK));
mnuEdit.add(mnuCut); mnuEdit.add(mnuCut);
mnuCut.addActionListener(this); mnuCut.addActionListener(this);
mnuCopy = new JMenuItem("Copy"); mnuCopy = new JMenuItem("Copy");
mnuCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, java.awt.Event.CTRL_MASK));
mnuEdit.add(mnuCopy); mnuEdit.add(mnuCopy);
mnuCopy.addActionListener(this); mnuCopy.addActionListener(this);
mnuPaste = new JMenuItem("Paste"); mnuPaste = new JMenuItem("Paste");
mnuPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, java.awt.Event.CTRL_MASK));
mnuEdit.add(mnuPaste); mnuEdit.add(mnuPaste);
mnuPaste.addActionListener(this); mnuPaste.addActionListener(this);
mnuDelete = new JMenuItem("Delete"); mnuDelete = new JMenuItem("Delete");
mnuEdit.add(mnuDelete); mnuEdit.add(mnuDelete);
mnuDelete.addActionListener(this); mnuDelete.addActionListener(this);
mnuEdit.addSeparator();*/ mnuEdit.addSeparator();
mnuSelectAll = new JMenuItem("Select all"); mnuSelectAll = new JMenuItem("Select all");
m.add(mnuSelectAll); mnuSelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, java.awt.Event.CTRL_MASK));
mnuEdit.add(mnuSelectAll);
mnuSelectAll.addActionListener(this); mnuSelectAll.addActionListener(this);
mnuClear = new JMenuItem("Clear all"); mnuClear = new JMenuItem("Clear all");
m.add(mnuClear); mnuEdit.add(mnuClear);
mnuClear.addActionListener(this); mnuClear.addActionListener(this);
mb.add(m); mb.add(mnuEdit);
m = new JMenu("View"); JMenu m = new JMenu("View");
tibScript = new JCheckBoxMenuItem("Tibetan Script", true); tibScript = new JCheckBoxMenuItem("Tibetan Script", true);
m.add(tibScript); m.add(tibScript);
tibScript.addItemListener(this); tibScript.addItemListener(this);
@ -113,6 +117,7 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
m.add(aboutItem); m.add(aboutItem);
mb.add(m); mb.add(m);
setJMenuBar(mb); setJMenuBar(mb);
//mnuEdit.setEnabled(false); //mnuEdit.setEnabled(false);
} }
@ -122,7 +127,7 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
public void focusGained(FocusEvent e) public void focusGained(FocusEvent e)
{ {
objModified = e.getSource(); objModified = e.getSource();
/* boolean isEditable=false; boolean isEditable=false;
if (objModified instanceof TextComponent) if (objModified instanceof TextComponent)
{ {
@ -143,7 +148,9 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
mnuPaste.setEnabled(true); mnuPaste.setEnabled(true);
} }
else mnuPaste.setEnabled(false); else mnuPaste.setEnabled(false);
mnuDelete.setEnabled(isEditable);*/ mnuDelete.setEnabled(isEditable);
mnuCopy.setEnabled(true);
mnuSelectAll.setEnabled(true);
} }
/** Added to update the Edit menu in dependence upon /** Added to update the Edit menu in dependence upon
@ -151,8 +158,12 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
*/ */
public void focusLost(FocusEvent e) public void focusLost(FocusEvent e)
{ {
/* mnuEdit.setEnabled(false); /* objModified=null;
objModified=null;*/ mnuCut.setEnabled(false);
mnuCopy.setEnabled(false);
mnuPaste.setEnabled(false);
mnuDelete.setEnabled(false);
mnuSelectAll.setEnabled(false);*/
} }
/* FIXME: what happens if this throws an exception? We'll just /* FIXME: what happens if this throws an exception? We'll just
see it on the console--it won't terminate the program. And the see it on the console--it won't terminate the program. And the
@ -160,9 +171,9 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
public void actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)
{ {
Object clicked = e.getSource(); Object clicked = e.getSource();
/* StringSelection ss; StringSelection ss;
String s = null; String s = null;
int start, end;*/ int start, end;
if (clicked==aboutItem) if (clicked==aboutItem)
{ {
@ -180,7 +191,7 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
{ {
TextArea t = (TextArea) objModified; TextArea t = (TextArea) objModified;
/*if (clicked == mnuCut) if (clicked == mnuCut)
{ {
ss = new StringSelection(t.getSelectedText()); ss = new StringSelection(t.getSelectedText());
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,ss); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,ss);
@ -202,15 +213,13 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
{ {
s = data.toString(); s = data.toString();
} }
t.replaceRange(s, t.getSelectionStart(), t.getSelectionEnd());
JOptionPane.showMessageDialog(AppletScannerFilter.this, s, "About", JOptionPane.PLAIN_MESSAGE);
t.insert(s, t.getCaretPosition());
} }
else if (clicked == mnuDelete) else if (clicked == mnuDelete)
{ {
t.replaceRange("", t.getSelectionStart(), t.getSelectionEnd()); t.replaceRange("", t.getSelectionStart(), t.getSelectionEnd());
} }
else*/ if (clicked == mnuSelectAll) else if (clicked == mnuSelectAll)
{ {
t.selectAll(); t.selectAll();
} }
@ -219,27 +228,16 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
{ {
DuffPane t = (DuffPane) objModified; DuffPane t = (DuffPane) objModified;
/*if (clicked == mnuCut) if (clicked == mnuCut)
{ {
t.copy(t.getSelectionStart(), t.getSelectionEnd(), true); t.cutCurrentSelection();
} }
else if (clicked == mnuCopy) else if (clicked == mnuCopy)
{ {
t.copy(t.getSelectionStart(), t.getSelectionEnd(), false); t.copyCurrentSelection();
} }
else if (clicked == mnuPaste) else if (clicked == mnuPaste)
{ {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable data = clipboard.getContents(this);
s = null;
try {
s = (String)(data.getTransferData(DataFlavor.stringFlavor));
}
catch (Exception ex) {
s = data.toString();
}
JOptionPane.showMessageDialog(AppletScannerFilter.this, s, "About", JOptionPane.PLAIN_MESSAGE);
t.paste(t.getCaret().getDot()); t.paste(t.getCaret().getDot());
} }
else if (clicked == mnuDelete) else if (clicked == mnuDelete)
@ -253,7 +251,7 @@ public class AppletScannerFilter extends JApplet implements ActionListener, Focu
System.out.println(ex); System.out.println(ex);
} }
} }
else*/ if (clicked == mnuSelectAll) else if (clicked == mnuSelectAll)
{ {
t.selectAll(); t.selectAll();
} }