import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;
@SuppressWarnings("unused")
private TransferHandler handler;
clipBoard
= Toolkit.
getDefaultToolkit().
getSystemClipboard();
this.textComponent = textComponent;
handler = textComponent.getTransferHandler();
createMenu();
}
protected void createMenu() {
}
public void addPasteFunction() {
Transferable clipboardContent
= clipBoard.
getContents(this);
if(clipboardContent!=null &&
(clipboardContent.
isDataFlavorSupported (DataFlavor.
stringFlavor))) {
try {
textComponent.
setText(textComponent.
getText()+clipboardContent.
getTransferData(DataFlavor.
stringFlavor));
}
}
});
popup.add(paste);
}
public void addCopyFunction() {
handler.exportToClipboard(textComponent, clipBoard, TransferHandler.COPY);
}
});
popup.add(copy);
}
public void addClearFunction() {
popup.addSeparator();
popup.add(clear);
}
public void addCutFunction() {
handler.exportToClipboard(textComponent, clipBoard, TransferHandler.MOVE);
}
});
popup.add(cut);
}
public void addPasteFunction
(String nameItem
) {
paste.setText(nameItem);
addPasteFunction();
}
public void addCopyFunction
(String nameItem
) {
copy.setText(nameItem);
addCopyFunction();
}
public void addClearFunction
(String nameItem
) {
clear.setText(nameItem);
addClearFunction();
}
public void addCutFunction
(String menuItem
) {
cut.setText(menuItem);
addCutFunction();
}
showPopup(e);
}
showPopup(e);
}
if (e.isPopupTrigger()) {
if(textComponent.getText().length()==0) {
copy.setEnabled(false);
cut.setEnabled(false);
} else {
copy.setEnabled(true);
copy.setEnabled(true);
}
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
return popup;
}
public static ClipboardPopupMenu installForComponent
(JTextComponent c
) {
ClipboardPopupMenu cpb = new ClipboardPopupMenu(c);
c.addMouseListener(cpb);
return cpb;
}
ClipboardPopupMenu cpb = new ClipboardPopupMenu(c);
c.addMouseListener(cpb);
return cpb;
}
public static ClipboardPopupMenu parsePopupMenu(ClipboardPopupMenu pop) {
pop.addCopyFunction("Copia");
pop.addCutFunction("Taglia");
pop.addPasteFunction("Incolla");
pop.addClearFunction("Clear");
return pop;
}
}