copy and paste features are fixed.
This commit is contained in:
parent
7336d27a33
commit
8391f19a8d
1 changed files with 37 additions and 39 deletions
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue