use of java.awt.datatransfer.FlavorEvent in project jdk8u_jdk by JetBrains.
the class SunClipboard method checkChange.
/**
* Checks change of the <code>DataFlavor</code>s and, if necessary,
* posts notifications on <code>FlavorEvent</code>s to the
* AppContexts' EDTs.
* The parameter <code>formats</code> is null iff we have just
* failed to get formats available on the clipboard.
*
* @param formats data formats that have just been retrieved from
* this clipboard
*/
protected final void checkChange(final long[] formats) {
if (Arrays.equals(formats, currentFormats)) {
// don't notify
return;
}
currentFormats = formats;
class SunFlavorChangeNotifier implements Runnable {
private final FlavorListener flavorListener;
SunFlavorChangeNotifier(FlavorListener flavorListener) {
this.flavorListener = flavorListener;
}
public void run() {
if (flavorListener != null) {
flavorListener.flavorsChanged(new FlavorEvent(SunClipboard.this));
}
}
}
;
for (Iterator it = AppContext.getAppContexts().iterator(); it.hasNext(); ) {
AppContext appContext = (AppContext) it.next();
if (appContext == null || appContext.isDisposed()) {
continue;
}
EventListenerAggregate flavorListeners = (EventListenerAggregate) appContext.get(CLIPBOARD_FLAVOR_LISTENER_KEY);
if (flavorListeners != null) {
FlavorListener[] flavorListenerArray = (FlavorListener[]) flavorListeners.getListenersInternal();
for (int i = 0; i < flavorListenerArray.length; i++) {
SunToolkit.postEvent(appContext, new PeerEvent(this, new SunFlavorChangeNotifier(flavorListenerArray[i]), PeerEvent.PRIORITY_EVENT));
}
}
}
}
use of java.awt.datatransfer.FlavorEvent in project deltahex-java by exbin.
the class DeltaHexEditorBasic method postInit.
private void postInit() {
codeArea.setComponentPopupMenu(mainPopupMenu);
setIconImage(new javax.swing.ImageIcon(getClass().getResource("/org/exbin/deltahex/editor/basic/resources/icons/icon.png")).getImage());
undoHandler.addUndoUpdateListener(new BinaryDataUndoUpdateListener() {
@Override
public void undoCommandPositionChanged() {
updateUndoState();
codeArea.repaint();
}
@Override
public void undoCommandAdded(@Nonnull BinaryDataCommand command) {
updateUndoState();
codeArea.repaint();
}
});
((EditationModeCapable) codeArea.getWorker()).addEditationModeChangedListener(new EditationModeChangedListener() {
@Override
public void editationModeChanged(EditationMode editationMode) {
switch(editationMode) {
case INSERT:
{
editationModeLabel.setText("INS");
break;
}
case OVERWRITE:
{
editationModeLabel.setText("OVR");
break;
}
default:
{
throw new IllegalStateException("Unexpected editation mode " + editationMode.name());
}
}
}
});
((CaretCapable) codeArea.getWorker()).addCaretMovedListener(new CaretMovedListener() {
@Override
public void caretMoved(CaretPosition caretPosition) {
positionLabel.setText(caretPosition.getDataPosition() + ":" + caretPosition.getCodeOffset());
}
});
((SelectionCapable) codeArea.getWorker()).addSelectionChangedListener(new SelectionChangedListener() {
@Override
public void selectionChanged(SelectionRange selection) {
updateClipboardState();
}
});
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.addFlavorListener(new FlavorListener() {
@Override
public void flavorsChanged(FlavorEvent e) {
updateClipboardState();
}
});
updateUndoState();
updateClipboardState();
openFileButton.setText("Open");
}
Aggregations